Что вы ищете dict.fromkeys вместе с dict.update.
Из документов
Создать новый словарь с ключами от SEQ и значений, установленных на значение.
Пример
>>> d = {}
>>> d.update(dict.fromkeys(range(10), 1))
>>> d
{0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1}
Примечание, вам нужен dict.update
вместе с dict.fromkeys
, чтобы обновить словарь в месте
Вместо этого, если вы хотите создать словарь и присвоение использовать нотацию
>>> d = dict.fromkeys(range(10), 1)
>>> d
{0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1}
К сожалению, для обновления на месте вам нужно создать словарь для выброса, прежде чем перейти к методу dict.update
. Не-интуитивный метод является использование itertools
from itertools import izip, repeat
d.update(izip(xrange(10), repeat(1)))
Та же идея может быть расширена до OrderedDict, который часто используется, в качестве альтернативы для OrderedSet
в качестве стандартной библиотеки не обеспечивает один.
«Но я хочу добавить ключ, значение, так что в итоге я получу только один словарь» - Можете ли вы объяснить? Код, который вы создаете, создает только один словарь. Возможно, вы хотите 'return count_dict' после завершения цикла for? – mgilson