Словари (dict)

Допустим, у вас есть информация о дате рождения нескольких человек, и вы хотите разработать программу, с помощью которой можно находить день рождения того или иного человека. В такой программе можно использовать список, элементы которого – даты рождения. Так как к значению конкретного элемента списка можно обратиться по его номеру (индексу), то для вывода на экран дня рождения нужного вам человека необходимо знать соответствующий номер. Это неудобно. Этот недостаток устраняется, если для хранения дат использовать другую структуру данных – словарь ( dict ).

Элементы словаря состоят из двух компонентов. Первый называется «ключ», второй – «значение». Аналогами словаря Python являются различные «жизненные» словари (толковые, орфографические, лингвистические). В них ключом является слово-заголовок статьи, а значением – сама статья. Для того чтобы получить доступ к статье, необходимо указать слово-ключ.

Простейшие примеры информации, которую в программе удобно хранить в виде словаря:

  • имя человека и дата его дня рождения;
  • номер авиарейса и аэропорт назначения;
  • название государства и его столица
  • русско-английский, в котором каждому русскому слову (ключу) соответствует его английский аналог (или аналоги).
Ключом в словаре Python может быть любой так называемый «неизменяемый тип» данных, к которому относится число, символьная строка или кортеж (неизменяемый набор значений).


Словарь (dict) - это неупорядоченная коллекция из нуля или более пар "ключ-значение", в которых в качестве ключей могут использоваться ссылки на хэшируемые объекты, а в качестве значений - ссылки на объекты любого типа. Словари относятся к категории изменяемых типов.

Свойства:

  • К словарям неприменимо понятие индекса и операция извлечения среза т.к. они не упорядочены.
  • Значение ключа уникально, добавление нового значения по существующему ключу приведет к замене старого значения на новое.
  • Произвольное число уровней вложенности.
  • Поддержка функции len.
  • Реализуют возможность создавать структуры данных.
Создание
developers = {
'Ян': 'python',
'Дмитрий': 'c',
'Петрович': 'ruby',
'Саша': 'python',
}
print(developers)
Работа с элементами
Методы

Представление словаря - это итерируемый объект доступный только для чтения, поддерживает некоторые операции множества (объединение, пересечение, разность, симметричческая разность) и оператор членства in.
Рассмотрим пример:
boy = {
    'здоровье': 100,
    'имя': 'Boy',
    'инвентарь': [],
    'навыки': ('стрельба из лука', 'уклон', 'вызов отца'),
    'квесты': {'поймать оленя', 'cобрать дрова'}
}

boy['квесты'].add('залезть в подвал')
print('оружие:', boy.get('оружие', 'нет оружия'))

boy['инвентарь'].append('лук')
weapon = boy['инвентарь'].pop()
boy.update(уровень=2, оружие=weapon)

print(f'\nСвойства персонажа {boy["имя"]}')
for key, val in boy.items():
    print(key, ':', val)
Операции