คำถามติดแท็ก defaultdict

15
collection.defaultdict ทำงานอย่างไร
ฉันได้อ่านตัวอย่างใน python docs แล้ว แต่ก็ยังไม่สามารถเข้าใจได้ว่าวิธีนี้มีความหมายอย่างไร ใครช่วยได้บ้าง นี่คือตัวอย่างสองตัวอย่างจาก python docs >>> from collections import defaultdict >>> s = 'mississippi' >>> d = defaultdict(int) >>> for k in s: ... d[k] += 1 ... >>> d.items() [('i', 4), ('p', 2), ('s', 4), ('m', 1)] และ >>> s = [('yellow', 1), ('blue', 2), …

7
defaultdict ที่ซ้อนกันของ defaultdict
มีวิธีทำให้ defaultdict เป็นค่าเริ่มต้นสำหรับ defaultdict ด้วยหรือไม่? (เช่นค่าเริ่มต้นการเรียกซ้ำแบบไม่มีที่สิ้นสุด?) ฉันต้องการที่จะทำได้: x = defaultdict(...stuff...) x[0][1][0] {} ฉันทำได้x = defaultdict(defaultdict)แต่นั่นเป็นเพียงระดับที่สอง: x[0] {} x[0][0] KeyError: 0 มีสูตรที่สามารถทำได้ แต่สามารถทำได้โดยใช้อาร์กิวเมนต์ defaultdict ปกติหรือไม่? โปรดทราบว่านี่เป็นการถามถึงวิธีการสร้างค่าเริ่มต้นแบบเรียกซ้ำแบบไม่มีที่สิ้นสุดดังนั้นจึงแตกต่างจากPython: defaultdict of defaultdict? ซึ่งเป็นวิธีการตั้งค่า defaultdict สองระดับ ฉันอาจจะใช้รูปแบบพวงแต่เมื่อฉันรู้ว่าฉันไม่รู้วิธีทำมันทำให้ฉันสนใจ

10
ʻif key ใน dict` เทียบกับ `try / except` - สำนวนไหนอ่านง่ายกว่ากัน?
ฉันมีคำถามเกี่ยวกับสำนวนและความสามารถในการอ่านและดูเหมือนว่าจะมีการปะทะกันของปรัชญา Python สำหรับกรณีนี้: ฉันต้องการสร้างพจนานุกรม A จากพจนานุกรม B หากไม่มีคีย์เฉพาะใน B ให้ทำอะไรแล้วดำเนินการต่อ ทางไหนดีกว่ากัน? try: A["blah"] = B["blah"] except KeyError: pass หรือ if "blah" in B: A["blah"] = B["blah"] "ทำและขอการอภัย" เทียบกับ "ความเรียบง่ายและชัดเจน" ไหนดีกว่ากันและทำไม?

4
มีวิธีที่ชาญฉลาดในการส่งคีย์ไปยัง default_factory ของ defaultdict หรือไม่?
คลาสมีตัวสร้างซึ่งรับพารามิเตอร์หนึ่งตัว: class C(object): def __init__(self, v): self.v = v ... ที่ใดที่หนึ่งในโค้ดจะมีประโยชน์สำหรับค่าใน dict เพื่อให้ทราบคีย์ ฉันต้องการใช้ defaultdict กับคีย์ที่ส่งไปยังค่าเริ่มต้นแรกเกิด: d = defaultdict(lambda : C(here_i_wish_the_key_to_be)) ข้อเสนอแนะใด ๆ ?

3
Python: แปลง defaultdict เป็น dict
ฉันจะแปลง defaultdict ได้อย่างไร number_to_letter defaultdict(<class 'list'>, {'2': ['a'], '3': ['b'], '1': ['b', 'a']}) เป็นคำสั่งทั่วไป? {'2': ['a'], '3': ['b'], '1': ['b', 'a']}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.