6
หลายระดับของ 'collection.defaultdict' ใน Python
ขอบคุณกลุ่มผู้ใช้ที่ยอดเยี่ยมใน 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ในตอนแรกคือการหลีกเลี่ยงการเริ่มต้นพจนานุกรมสำหรับแต่ละคีย์ใหม่ ข้อเสนอแนะใด ๆ ที่สง่างามมากขึ้น? ขอบคุณ pythoneers!
176
python
dictionary
nested