Словари

Иногда данные очень связаны. настолько, что хранить их хочется вместе. Например, соответствие столиц:

Россия: Москва
Китай: Пекин
США: Вашингтон

Если вы знаете о списках, вы можете сделать это так:

countries = ["Россия", "Китай", "США"]
capitals = ["Москва", "Пекин", "Вашингтон"]

Но это всё ещё не круто. При работе со списками может случиться казус. Например, мы решим удалить Китай и добавить Францию:

["Россия", "США", "Франция"]
["Москва", "Пекин", "Вашингтон"]

Получится глупо. Для хранения таих вот связанных друг с другом данных используют словари:

capitals_mapping = {
  "Россия": "Москва",
  "США": "Вашингтон",
  "Китай": "Пекин"
}

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

russian_capital = capitals_mapping["Россия"]
print(russian_capital) 

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

Добавить элемент в словарь

Чтобы добавить нвую пару элементов в словарь, можно прировнять его значение по этому ключу:

capitals_mapping["Франция"] = "Париж"
print(capitals_mapping)

Выведется словарь с новой парой:

{'Россия': 'Москва', 'Китай': 'Пекин', 'США': 'Вашингтон', 'Франция': 'Париж'}

Убрать элемент из словаря

Элементы из словаря удаляются немного странно:

del capitals_mapping['Россия']    
print(capitals_mapping)
# Выведется словарь без пары Россия-Москва:
# {'Китай': 'Пекин', 'США': 'Вашингтон', 'Франция': 'Париж'}

Отредактировать словарь

Значения ключей можно менять так же, как создаются новые:

capitals_mapping["Франция"] = "Новый Париж"

Что дальше

Если статья не смогла объяснить что же такое словари или вы хотите почитать о них ещё, подойдут эти статьи: