Способы создания словарей в 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() (см. Методы словарей).