Питон примеры работы со словарями

Словари (dict) и работа с ними. Методы словарей

Python 3 логотип

Сегодня я расскажу о таком типе данных, как словари, о работе со словарями, операциях над ними, методах, о генераторах словарей.

Словари в Python — неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.

Чтобы работать со словарём, его нужно создать. Сделать это можно несколькими способами. Во-первых, с помощью литерала:

Во-вторых, с помощью функции dict:

В-третьих, с помощью метода fromkeys:

В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков.

Теперь попробуем добавить записей в словарь и извлечь значения ключей:

  : Как видно из примера, присвоение по новому ключу расширяет словарь, присвоение по существующему ключу перезаписывает его, а попытка извлечения несуществующего ключа порождает исключение. Для избежания исключения есть специальный метод (см. ниже), или можно перехватывать исключение.

Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы for и while), а также специальные методы словарей.

Методы словарей

dict.clear() — очищает словарь.

dict.copy() — возвращает копию словаря.

classmethod dict.fromkeys(seq[, value]) — создает словарь с ключами из seq и значением value (по умолчанию None).

dict.get(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).

dict.items() — возвращает пары (ключ, значение).

dict.keys() — возвращает ключи в словаре.

dict.pop(key[, default]) — удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).

dict.popitem() — удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.

dict.setdefault(key[, default]) — возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ со значением default (по умолчанию None).

dict.update([other]) — обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).

dict.values() — возвращает значения в словаре.

Для вставки кода на Python в комментарий заключайте его в теги

Источник

Словари в Python: что нужно знать и как пользоваться

Продолжаем осваивать «змеиный» язык. Сегодня поговорим о словарях — важном инструменте для хранения данных в Python.

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Нет, словари нужны не для того, чтобы переводить запутанный код программистов на человеческий. Их используют для того, чтобы удобно хранить данные и быстро получать к ним доступ по запросу. В этой статье подробно разберём, что такое словари и как с ними работать в Python.

А если вы уже знакомы со словарями и хотите освежить в памяти отдельные моменты, используйте навигацию или скачайте шпаргалку в конце статьи.

Что такое словарь

Словарь в языках программирования — это что-то вроде телефонной книги, где под каждым номером скрывается какой-то человек.

Только на языке разработчиков номера называют ключами, а людей, которым они принадлежат, — значениями. Вот как это можно представить в виде таблицы:

При этом ключи в словарях уникальны, а значения могут повторяться. Условно говоря, дизайнеру Валере может принадлежать сколько угодно номеров — но у каждого номера может быть только один владелец.

Мы привели пример с телефонной книгой, но вы можете хранить в словаре всё что угодно: названия песен, имена покупателей, товары в интернет-магазине и так далее. При этом стоит помнить важное правило:

Ключами могут быть строки, числа (целые и дробные) и кортежи. Нельзя использовать списки, словари и другие изменяемые типы данных. В значения можно «положить» любые типы данных — и даже новые словари.

Например, давайте в качестве ключа укажем название книги, а значением сделаем её автора.

Ключ Значение
«Гарри Поттер и философский камень» Джоан Роулинг
«Убить пересмешника» Харпер Ли
«Грокаем алгоритмы» Адитья Бхаргава

Теперь, если у нас есть название книги, мы можем быстро найти её автора. Этим словари и удобны: знаем ключ — моментально получаем значение.

👉 Словарь — это неупорядоченная структура данных. Это значит, что все пары «ключ — значение» хранятся в произвольном порядке. Идея в том, что нам неважно, где находится элемент: в начале, в серединие или в конце. Важно то, что он лежит где-то внутри и мы можем при случае его достать.

Пример упорядоченной структуры — это список. Там у всех элементов есть свои индексы, благодаря которым их можно отсортировать как душе угодно. Если хотите больше знать о списках, читайте другую нашу статью. А мы пойдём дальше — создадим наш первый словарь.

Как создать словарь в Python

Словари в Python оформляются фигурными скобками. Внутри них находятся пары «ключ — значение». Первым пишется ключ, а затем, через двоеточие, — значение. Сами пары отделяются друг от друга запятыми.

Метод pop()

Что делает: удаляет элемент из словаря по ключу.

harryPotterAuthor = dict.pop('Гарри Поттер и философский камень') print(harryPotterAuthor) > Джоан Роулинг print(dict) > 'Убить пересмешника': 'Харпер Ли'>

Метод keys()

Что делает: возвращает все ключи из словаря — но без значений.

dictKeys = dict.keys() print(dictKeys) > ['Гарри Поттер и философский камень', 'Убить пересмешника']

Метод values()

Что делает: возвращает все значения из словаря — но без ключей.

dictValues = dict.values() print(dictValues) > ['Джоан Роулинг', 'Харпер Ли']

Метод items()

Что делает: возвращает все пары «ключ — значение».

dictItems = dict.items() print(dictItems) > [('Гарри Поттер и философский камень', 'Джоан Роулинг'), ('Убить пересмешника', 'Харпер Ли')]

Что запомнить

Лучше не заучивать голую теорию, а сразу отрабатывать знания на практике. Начать можно, например, с бесплатных упражнений на w3schools.com. А чтобы быстро находить нужный метод и не ходить каждый раз в гугл, можете сохранить себе шпаргалку по ссылке или таблицу ниже.

Метод Что делает
clear() Удаляет все элементы из словаря
copy() Создаёт копию словаря
update() Добавляет в словарь одну или несколько пар «ключ — значение»
pop() Удаляет элемент из словаря по ключу
keys() Возвращает список ключей из словаря
values() Возвращает список значений из словаря
items() Возвращает все пары «ключ — значение»
popitem() Удаляет последнюю добавленную пару «ключ — значение»
get() Возвращает значение из словаря по ключу — или None, если такого ключа не существует. Можно указать своё значение в качестве второго аргумента
setdefault() Возвращает значение указанного ключа. Если ключа не существует, создаёт его и добавляет в словарь со значением None или тем, что вы добавите в качестве второго аргумента

Читайте также:

Источник

Словари и их методы в Python

Обложка: Словари и их методы в Python

Словарь — неупорядоченная структура данных, которая позволяет хранить пары «ключ — значение». Вот пример словаря на Python:

Данный словарь использует строки в качестве ключей, однако ключом может являться в принципе любой неизменяемый тип данных. Значением же конкретного ключа может быть что угодно. Вот ещё один пример словаря, где ключами являются числа, а значениями — строки:

Важное уточнение: если вы попробуете использовать изменяемый тип данных в качестве ключа, то получите ошибку:

Прим. перев. На самом деле проблема не с изменяемыми, а с нехэшируемыми типами данных, но обычно это одно и то же.

Получение данных из словаря

Для получения значения конкретного ключа используются квадратные скобки [] . Предположим, что в нашем словаре есть пара 'марафон': 26 .

# берём значение с ключом "марафон" dictionary['марафон']

Опять же, вы получите ошибку, если попытаетесь получить значение по несуществующему ключу. Для избежания подобных ошибок существуют методы, о которых мы сейчас поговорим.

Добавление и обновление ключей

Добавление новых пар в словарь происходит достаточно просто:

# Добавляем ключ "туфля" со значением "род обуви, закрывающей ногу не выше щиколотки" dictionary['туфля'] = 'род обуви, закрывающей ногу не выше щиколотки'

Обновление существующих значений происходит абсолютно также:

# Обновляем ключ "туфля" и присваиваем ему значение "хорошая туфля" dictionary['туфля'] = 'хорошая туфля'

Удаление ключей

Для удаления ключа и соответствующего значения из словаря можно использовать del

# Удаляем значение с ключом "противостоять" из словаря del dictionary['противостоять']

Методы

Словари в Python имеют множество различных полезных методов, которые помогут вам в работе с ними. Вот лишь некоторые из них:

Update

Метод update() пригодится, если нужно обновить несколько пар сразу. Метод принимает другой словарь в качестве аргумента.

# Добавляем две пары в словарь dictionary, используя метод update dictionary.update()

Если вас интересует, почему данные в словаре расположены не в том порядке, в котором они были внесены в него, то это потому что словари не упорядочены.

Get

# Допустим, у нас есть словарь story_count story_count =

Метод get() возвращает значение по указанному ключу. Если указанного ключа не существует, метод вернёт None .

# Ключ "двенадцать" существует и метод get в данном случае вернёт 12 story_count.get('двенадцать')

Метод можно использовать для проверки наличия ключей в словаре:

Также можно указать значение по умолчанию, которое будет возвращено вместо None , если ключа в словаре не окажется:

# Метод вернёт 0 в случае, если данного ключа не существует story_count.get('два', 0)

Pop

Метод pop() удаляет ключ и возвращает соответствующее ему значение.

>>> story_count.pop('девяносто') 90 >>> story_count

Keys

Метод keys() возвращает коллекцию ключей в словаре.

>>> story_count.keys() ['сто', 'пять', 'двенадцать']

Values

Метод values() возвращает коллекцию значений в словаре.

>>> story_count.values() [100, 12, 5]

Items

Метод items() возвращает пары «ключ — значение».

>>> dictionary.items() [('персона', 'человек'), ('бежать', 'двигаться со скоростью'), ('туфля', 'род обуви, закрывающей ногу не выше щиколотки'), ('бежал', 'бежать в прошедшем времени'), ('марафон', 'гонка бегунов длиной около 26 миль'), ('туфли', 'туфля во множественном числе')]

Итерация через словарь

Вы можете провести итерацию по каждому ключу в словаре.

for key in story_count: print(key)

Очевидно, вместо story_count можно использовать story_count.keys() .

В примере кода ниже цикл for использует метод items() для получения пары «ключ — значение» на каждую итерацию.

>>> for key, value in dictionary.items(): print(key, value) ('персона', 'человек') ('бежать', 'двигаться со скоростью') ('туфля', 'род обуви, закрывающей ногу не выше щиколотки') ('бежал', 'бежать в прошедшем времени') ('марафон', 'гонка бегунов длиной около 26 миль') ('туфли', 'туфля во множественном числе')

О словаре и других типах данных Python можно почитать в нашей статье.

Что думаете?

По сути ничего нового , да и чтоб найти хорошую работу не нужно никакого cv , нужно просто быть специалистом и главное иметь желание работать , всё просто Ватсон, да можно найти хорошую работу и без опыта , легко, главное нужно иметь большое желание и немного быть не рукожоп#м ))). Иногда напишут такие требования что сам IT Бог не разберется , а по сути нужен стандартный сисадмин , с универской базой, а понапишут такую ахинею , что никая Википедия таких терминов и знать не знает , кто пишет такие требования idiotusî.))), Хороший айтишник тот который не работает, за него компы пашут и не ломаются, собаки ))). Учись студент

Слава, скиньте, пожалуйста, Ваше резюме, мы с радостью познакомимся с Вами. На данный момент у нас штат полностью укомплектован, но кто знает? талантливым специалистам мы всегда рады.

Сколько раз еще нужно будет повторить простой чек-лист, чтобы исчезли треш-резюме - риторический вопрос.Впрочем так же как и треш-собеседования 🙂

Источник

Читайте также:  Html input label position
Оцените статью