Можно сказать, что словари Python — это ассоциативные массивы. Вы можете определить словарь, заключив разделенный запятыми список пар ключ-значение в фигурные скобки({}). Двоеточие(:) отделяет каждый ключ от связанного с ним значения. Давайте посмотрим, как создать словарь списков.
Что такое словарь списков в Python?
Словарь списков Python — это словарь, значениями которого являются списки. Например, {«x»: [11, 21], «y»: [19, 46]} — это словарь списков. Словарь Python — это неупорядоченная, изменяемая и индексированная коллекция.
Чтобы создать и использовать словарь списков в Python, вам нужно добавить пары ключ-значение внутри фигурных скобок. Чтобы получить доступ к элементам словаря, используйте имя ключа в квадратных скобках.
Создание словаря списков
Чтобы инициализировать словарь списков, назначьте каждую клавишу списку элементов, чтобы создать словарь списков.
|
1 2 3 4 |
# app.py dictOfList = {"x": [11, 21], "y": [19, 46]} print(dictOfList) |
Вывод:
|
1 |
{'x': [11, 21], 'y': [19, 46]} |
В этом примере x и y — это ключи словаря, а списки — это значения.
Использование списка в качестве ключа в словаре
Ограничение с ключами заключается в том, что только неизменяемые типы данных могут использоваться в качестве ключей в словаре Python, а это означает, что мы не можем использовать словарь списка в качестве ключа.
|
1 2 3 4 |
# app.py dictOfListKeys = {[1, 2]: 'AppDividend'} print(dictOfListKeys) |
Вывод:
|
1 |
TypeError: unhashable type: 'list' |
Вы можете видеть, что мы получили TypeError: unhashable type: ‘list’.
Но то же самое можно сделать очень разумно со значениями в словаре.
Применение индекса для создания словаря списков
Вы можете добавить список в качестве значения в словарь.
|
1 2 3 4 5 6 7 8 9 |
# app.py myDict = {} # Adding list as value myDict["key1"] = [11, 21] myDict["key2"] = ["MBB", "KL"] print(myDict) |
Вывод:
|
1 |
{'key1': [11, 21], 'key2': ['MBB', 'KL']} |
Использование defaultdict
Defaultdict в Python — это контейнер, подобный словарям, присутствующим в коллекциях модулей. Defaultdict — это подкласс класса словаря, который возвращает объект, подобный словарю.
Синтаксис
|
1 |
defaultdict(default_factory) |
Параметры
default_factory: это функция, возвращающая значение по умолчанию для определенного словаря. Если аргумент default_factory отсутствует, словарь выдает ошибку KeyError.
Пример
|
1 2 3 4 5 6 7 8 9 10 11 |
# Importing defaultdict from the collections module from collections import defaultdict mList = [('Millie', 1),('Bobby', 2),('Brown', 3)] deDict = defaultdict(list) # iterating over list of tuples for key, val in mList: deDict[key].append(val) print(deDict) |
Вывод:
|
1 |
defaultdict(<class 'list'>, {'Millie': [1], 'Bobby': [2], 'Brown': [3]}) |
В этом примере мы создаем словарь списков, используя defaultdict(). Здесь ключи в словаре разные, но если ключи одинаковые, то он объединит значения в один список и вернет словарь.
|
1 2 3 4 5 6 7 8 9 10 11 |
# Importing defaultdict from the collections module from collections import defaultdict mList = [('Va', 1),('Tech', 2),('Va', 3)] deDict = defaultdict(list) # iterating over list of tuples for key, val in mList: deDict[key].append(val) print(deDict) |
Вывод:
|
1 |
defaultdict(<class 'list'>, {'Va': [1, 3], 'Tech': [2]}) |

