Если у меня есть, d=dict(zip(range(1,10),range(50,61)))
как я могу построить collections.defaultdict
из dict
?
Единственный аргумент, который, defaultdict
похоже, принимает, - это фабричная функция, мне нужно будет инициализировать, а затем просмотреть оригинал d
и обновить defaultdict
?
python
dictionary
Картик
источник
источник
default_dict = defaultdict(None,{"a":1,"b":{"c":3}})
например,default_dict["e"]
вызывает KeyError вместо возврата NoneNone
не означает, что он не будет генерировать None для неизвестных ключей, он не будет использовать его вообще. Вы должны сделатьdefaultdict(lambda: None, {....})
Вы можете создать defaultdict из dict, передав dict в качестве второго аргумента.
from collections import defaultdict d1 = {'foo': 17} d2 = defaultdict(int, d1) print(d2['foo']) ## should print 17 print(d2['bar']) ## should print 1 (default int val )
источник
defaultdict
- это метод из коллекций, который не возвращает ключевую ошибку, когда элемент отсутствует.источник