dict.fromkeys(iterable[, value])
iterable
- итерируемая последовательностьvalue
- значение по умолчаниюМетод dict.fromkeys()
встроенного класса dict()
создает новый словарь с ключами из последовательности iterable
и значениями, установленными в value
.
dict.fromkeys()
- это метод класса, который возвращает новый словарь, значение по умолчанию None
. Все значения относятся только к одному экземпляру, поэтому обычно не имеет смысла, чтобы значение value
было изменяемым объектом, таким как пустой список.
Чтобы получить словарь с определенными значениями value
каждого ключа key
, используйте выражение-генератор словаря.
>>> x = dict.fromkeys(['one', 'two', 'three', 'four']) >>> x # {'one': None, 'two': None, 'three': None, 'four': None} >>> x = dict.fromkeys(['one', 'two', 'three', 'four'], 0) >>> x # {'one': 0, 'two': 0, 'three': 0, 'four': 0}
# список элементов, которые будут ключами >>> key = ['one', 'two', 'three', 'four'] # список элементов, которые будут значениями словаря >>> value = [1, 2, 3, 4] # создаем словарь из двух списков >>> a = {k:v for k, v in zip(key, value)} >>> a # {'one': 1, 'two': 2, 'three': 3, 'four': 4}
dict.fromkeys()
.Например есть список с повторяющимися значениями и необходимо узнать сколько раз какой элемент повторяется в этом списке. Результат получим в виде словаря, где уникальный элемент списка будет ключом, а количество повторений - значением.
Для этого создадим словарь с уникальными ключами, полученными при преобразовании этого списка в множество (множество set()
может иметь только уникальные элементы). Значения по умолчанию полученного словаря установим в 0. Далее в цикле по исходному списку будем увеличивать соответствующий ключ словаря на единицу.
# имеем список lst = [9, 13, 1, 3, 7, 3, 1, 1, 7, 1, 7, 9] # создаем ключи будущего словаря (множество set() # может иметь только уникальные элементы) key = set(lst) # создаем словарь `rez` из списка ключей `key` # со значением по умолчанию = 0 rez = dict.fromkeys(key, 0) # {1: 0, 3: 0, 7: 0, 9: 0, 13: 0} for key in lst: # увеличиваем счетчик # соответствующего ключа на 1 rez[key] += 1 # смотрим результат print(rez) {1: 4, 3: 2, 7: 3, 9: 2, 13: 1}