Словари
Словари — еще один встроенный тип данных для хранения объектов. Они используются для связывания одного объекта, называемого ключом, с другим, называемым значением. Такое связывание называется отображением. Результатом отображения будет пара ключ-значение. Пары ключ-значение добавляются в словарь. Затем вы можете найти в словаре ключ и получить соответствующее ему значение. Однако нельзя, наоборот, использовать значение для нахождения ключа.
Словари, как и списки, изменяемы. То есть, в них можно добавлять новые пары ключ-значение. Их полезность заключается в связях между ключами и значениями — существует множество ситуаций, в которых вам потребуется сохранять данные попарно. Например, в словаре можно сохранить информацию о телефонных номерах ваших друзей:
phones = {
"Иван": "+7123456789",
"Василий": "+37520123456"
}
print(phones)
При создании словаря нужно использовать фигурные скобки, отделять ключ от значения двоеточием, а пары ключ-значение разделять запятыми. В отличие от кортежей, если у вас есть только одна пара ключ-значение, запятая после нее не нужна.
Как только вы создали словарь, можете добавлять в него пары ключ-значение,
используя синтаксис имя\_словаря[ключ] = значение
,
а также искать значение при помощи ключа, используя синтаксис имя_словаря[ключ]
.
phones = {
"Иван": "+7123456789",
"Василий": "+37520123456"
}
phones['Григорий'] = 1234567890
print(phones['Иван'])
Значением в словаре может быть любой объект. В предыдущем примере первые два значения были строками,
а последнее значение, 1234567890
, — целым числом.
В отличие от значения словаря, ключ словаря должен быть неизменяемым. Ключом словаря может быть строка или кортеж,
но не список или словарь. Для определения того, есть ли ключ в словаре,
используйте ключевое слово in
, а not in
— для проверки отсутствия ключа.
phones = {
"Иван": "+7123456789",
"Василий": "+37520123456"
}
print("Василий" in phones) # True
Из словаря можно удалить пару ключ-значение с помощью ключевого слова del
.
phones = {
"Иван": "+7123456789",
"Василий": "+37520123456"
}
del phones["Василий"]
Вы можете сохранять контейнеры в других контейнерах. Например, можно хранить списки внутри списка.
music = {
"rap": ["Баста", "Кравц", "Злой Дух"],
"rock": ["Наутилус Помпилиус", "Кино", "Ария"],
"djs": ["Paul Oakenfold", "Tiesto"]
}
В этом примере словарь music имеет три ключа, каждый из которых является списком: К этим спискам можно получить доступ с помощью соответствующих ключей
music = {
"rap": ["Баста", "Кравц", "Злой Дух"],
"rock": ["Наутилус Помпилиус", "Кино", "Ария"],
"djs": ["Paul Oakenfold", "Tiesto"]
}
print(music['rap']) # ['Баста', 'Кравц', 'Злой Дух']
print(music['rock'][-1]) # Ария