Завдяки великим людям на SO, я виявив можливості, що пропонуються collections.defaultdict
, особливо в читанні та швидкості. Я з успіхом використовував їх.
Тепер я хотів би реалізувати три рівні словників, два найпотужніших - defaultdict
найнижчий int
. Я не знаходжу відповідного способу це зробити. Ось моя спроба:
from collections import defaultdict
d = defaultdict(defaultdict)
a = [("key1", {"a1":22, "a2":33}),
("key2", {"a1":32, "a2":55}),
("key3", {"a1":43, "a2":44})]
for i in a:
d[i[0]] = i[1]
Зараз це працює, але наступне, що є бажаною поведінкою, не робить:
d["key4"]["a1"] + 1
Я підозрюю, що я мав десь заявити, що другий рівень defaultdict
має тип int
, але я не знайшов, де чи як це зробити.
Причиною, якою я користуюсь defaultdict
в першу чергу, є те, щоб уникнути необхідності ініціалізації словника для кожного нового ключа.
Якась більш елегантна пропозиція?
Дякую пітонерам!
multiprocessing
значить незадоволений тим, що надсилати їх туди-сюди.