Em muitos fluxos de trabalho em que você deseja anexar um valor inicial / padrão para chaves arbitrárias, não é necessário fazer o hash de cada chave individualmente antes do tempo. Você pode usar collections.defaultdict
. Por exemplo:
from collections import defaultdict
d = defaultdict(lambda: None)
print(d[1]) # None
print(d[2]) # None
print(d[3]) # None
Isso é mais eficiente, pois evita o hash de todas as suas chaves na instanciação. Além disso, defaultdict
é uma subclasse de dict
, portanto, geralmente não há necessidade de converter novamente em um dicionário comum.
Para fluxos de trabalho em que você precisa de controles sobre chaves permitidas, pode usar dict.fromkeys
conforme a resposta aceita:
d = dict.fromkeys([1, 2, 3, 4])
dict.fromkeys([1, 2, 3], [])
todas as chaves são mapeadas para a mesma lista, e a modificação de uma modificará todas elas.