Справочник по функциям Python

dict.fromkeys

Создаёт словарь с ключами из итерируемого объекта и одним значением для всех.

Python 3.13
dict.fromkeys(iterable[, value])

Параметры

iterableIterable
Ключи будущего словаря.
valueAnyнеобязательный
Значение для всех ключей, по умолчанию None.

Возвращаемое значение

Новый словарь.

Примеры

Одинаковое значение для всех ключей

Python 3.13
print(dict.fromkeys(['a', 'b'], 0))
{'a': 0, 'b': 0}

Удаление повторов с сохранением порядка

Python 3.13
print(list(dict.fromkeys([3, 1, 3, 2, 1])))
[3, 1, 2]

Общий список для всех ключей

Python 3.13
groups = dict.fromkeys(['a', 'b'], [])
groups['a'].append(1)
print(groups)
{'a': [1], 'b': [1]}

Подробности

Всем ключам достаётся один и тот же объект value: если это список, изменение через один ключ видно во всех. Для отдельного списка на каждый ключ используйте {key: [] for key in keys} или collections.defaultdict(list). Повторяющиеся ключи остаются в одном экземпляре, поэтому list(dict.fromkeys(items)) убирает повторы с сохранением порядка.

Смотрите также