Тип данных "Словарь" (dict
, ассоциативный массив)
Разберем еще один составной типа данных Python, называемый
словарем, который похож на список в том смысле, что он представляет собой набор объектов.
Словари и списки имеют следующие характеристики:
- оба изменяемы;
- оба являются динамическими (могут увеличиваться и уменьшаться в размере по мере необходимости);
- оба могут быть вложенными (список может содержать другой список, словарь может содержать другой словарь, словарь также может содержать список, и наоборот).
Словари отличаются от списков прежде всего тем, как осуществляется доступ к элементам:
- доступ к элементам списка осуществляется по их положению в списке через индексацию;
- доступ к элементам словаря осуществляется с помощью ключей.
Словари - это структура данных, реализованная в Python, более известная как ассоциативный массив. Словарь состоит из набора пар ключ-значение. Каждая пара "ключ-значение" сопоставляет ключ с соответствующим значением.
Создание словаря
Создать словарь можно заключив список пар
ключ-значение, разделенный запятыми, в фигурные скобки (
{}
). Двоеточие (
:
) отделяет каждый ключ от связанного с ним значения:
d = {
<key>: <value>,
<key>: <value>,
.
.
.
<key>: <value>
}
P.S.: В записи выше, треугольные скобки
<key>
и
<value>
используются для обозначения местозаполнителей. Это значит, что вместо них вы должны подставить конкретные ключи и значения, которые хотите использовать в словаре.
Пример 1: Создание словаря при помощи фигурных скобок:
# Создание словаря с информацией о фруктах
fruits = {"яблоко": 5, "апельсин": 3, "банан": 7}
В этом примере ключами словаря являются названия фруктов ("яблоко", "апельсин", "банан"), а значениями - количество каждого фрукта.
Пример 2: Последовательное добавление элементов в пустой словарь:
# Создание пустого словаря и добавление элементов
employee = {}
employee["имя"] = "Иванов"
employee["возраст"] = 30
employee["подразделение"] = "Продажи"
Функция dict()
Можно создать словарь с помощью встроенной функции dict()
функции. Аргумент dict()
должен быть последовательностью пар ключ-значение
. Для этого хорошо подходит список кортежей:
d = dict([
(<key>, <value>),
(<key>, <value),
.
.
.
(<key>, <value>)
])
Пример 3: Создание словаря из кортежей с помощью ключей и значений:
# Создание словаря из кортежей
pairs = [(1, 'один'), (2, 'два'), (3, 'три')]
dictionary = dict(pairs)
print(dictionary) # Вывод: {1: 'один', 2: 'два', 3: 'три'}
Здесь мы создаем словарь из списка кортежей pairs, где первый элемент каждого кортежа будет ключом, а второй элемент - значением.
Пример 4: Создание словаря путем передачи аргументов ключей и значений:
# Создание словаря через передачу аргументов
dictionary = dict(яблоко=5, апельсин=3, банан=7)
print(dictionary) # Вывод: {'яблоко': 5, 'апельсин': 3, 'банан': 7}
Здесь мы передаем аргументы с ключами и их соответствующими значениями, и функция dict()
создает словарь на их основе.
Вывод элементов словаря
Вывести содержимое списка на экран можно просто командой print()
. Записи в словаре отображаются в том порядке, в котором они были созданы.
# Создаем словарь
my_dict = { "Alice": 30, "Bob": 25, "Charlie": 35 }
# Выводим словарь
print(my_dict)
Этот код выведет словарь в следующем формате:
{'Alice': 30, 'Bob': 25, 'Charlie': 35}
Характеристики словаря
Порядок: В отличие от последовательностей (например, списков, кортежей), словари не упорядочены до версий python 3.7. После версии 3.7 они упорядочиваются.
Мутабельность: Словари могут быть изменены (элементы могут быть добавлены, удалены или изменены).
Уникальность: Ключи в словаре должны быть уникальными.