Способы создания словарей в Python
В Python пустой словарь можно создать с помощью пустой пары фигурных скобок {}
, а также вызовом конструктора класса dict()
без аргументов.
"Классическим" вариантом заполнения словаря инициирующими записями при его создании является перечисление пар ключ:значение
через запятую внутри фигурных скобок.
d = {'cat': 1, 'dog': 2, 'pig': 1}
Конструктор dict()
позволяет создавать словарь, передавая записи в виде именованных аргументов. При таком варианте ключи всегда должны быть строками.
>>> d = dict(cat=3, dog=2, cow=1)
>>> d
{'cat': 3, 'dog': 2, 'cow': 1}
В общем случае dict()
принимает любую последовательность (список, кортеж, итератор), состоящую из пар, первый элемент которых может выступать ключом словаря (то есть является неизменяемым объектом).
>>> a = [('cat', 1), ('dog', 3)]
>>> z = zip(['cat','dog','pig'], (1, 3, 1))
>>> da = dict(a)
>>> dz = dict(z)
>>> da
{'cat': 1, 'dog': 3}
>>> dz
{'cat': 1, 'dog': 3, 'pig': 1}
В языке программирования Python помимо списковых выражений ("генераторов" списков) существуют словарные выражения - dict comprehensions. В отличие от выражений, создающих списки, словарные заключаются в фигурные скобки. При этом в подвыражении до for
должны стоять два объекта, разделенных двоеточием.
>>> d = {x: x*10 for x in range(4)}
>>> d
{0: 0, 1: 10, 2: 20, 3: 30}
Также словари в Python создаются с помощью классового метода fromkeys(iterable[, value])
, копированием словарей методом copy()
(см. Методы словарей).