Python. Создать словарь по списку ключей
Предположим, вы сделали робота для общественных пространств. Он будет помогать людям.
Вы решаете, что полезно собирать статистику добрых дел — что и сколько раз робот сделал. Для этого удобно использовать счётчик, ключами которого будут названия действий, а значениями — количество выполнений.
Робот постоянно учится новым полезным активностям, так что набор дел не фиксированный. Он хранится в списке:
actions = [
"махать флагом",
"чесать котов",
"смешить детей",
"рвать шаблоны",
]
Как бы из этого списка сделать счётчик? Так не надо, конечно:
from collections import Counter
counter = Counter()
for action in actions:
counter[action] = 0
>>> counter
Counter({
'махать флагом': 0,
'чесать котов': 0,
'смешить детей': 0,
'рвать шаблоны': 0})
Намного роднее воспользоваться dictionary comprehension (простите, что на англ — непереводимая игра слов):
counter = Counter({action: 0 for action in actions})
Или малоизвестным методом dict.fromkeys()
:
counter = Counter(dict.fromkeys(actions, 0))
Первый аргумент — список ключей, второй — умолчательное значение. Удобно, а?
★ Подписывайтесь на новые заметки.