SO'daki bazı harika insanlar sayesinde collections.defaultdict
, özellikle okunabilirlik ve hızda sunulan olanakları keşfettim . Onları başarı ile kullanmaya başladım.
Şimdi, iki üst düzey defaultdict
ve en düşük olan olmak üzere üç düzey sözlük uygulamak istiyorum int
. Bunu yapmanın uygun yolunu bulamıyorum. İşte benim girişimim:
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]
Şimdi bu çalışıyor, ancak istenen davranış olan aşağıdakiler çalışmıyor:
d["key4"]["a1"] + 1
Bir yerde ikinci seviyenin defaultdict
tür olduğunu ilan etmem gerektiğinden şüpheliyim int
, ama nerede veya nasıl yapacağımı bulamadım.
defaultdict
İlk başta kullanmamın nedeni , her yeni anahtar için sözlüğü başlatmak zorunda kalmamaktır.
Daha zarif bir öneriniz var mı?
Teşekkürler pythoneers!
multiprocessing
bunları ileri geri göndermekten mutsuz.