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

11
เหตุใดฉันจึงไม่สามารถใช้รายการเป็นคีย์ dict ใน python ได้
ฉันสับสนเล็กน้อยเกี่ยวกับสิ่งที่สามารถ / ไม่สามารถใช้เป็นคีย์สำหรับ python dict dicked = {} dicked[None] = 'foo' # None ok dicked[(1,3)] = 'baz' # tuple ok import sys dicked[sys] = 'bar' # wow, even a module is ok ! dicked[(1,[3])] = 'qux' # oops, not allowed ทูเปิลจึงเป็นประเภทที่ไม่เปลี่ยนรูป แต่ถ้าฉันซ่อนรายการไว้ข้างในมันก็จะไม่เป็นกุญแจ .. ฉันจะซ่อนรายการภายในโมดูลได้ไม่ยากหรือ? ฉันมีความคิดที่คลุมเครือว่ากุญแจนั้นจะต้อง "แฮชได้" แต่ฉันจะยอมรับความไม่รู้ของตัวเองเกี่ยวกับรายละเอียดทางเทคนิค ฉันไม่รู้ว่าเกิดอะไรขึ้นที่นี่ จะเกิดอะไรขึ้นถ้าคุณพยายามใช้รายการเป็นคีย์โดยมีแฮชเป็นพูดตำแหน่งหน่วยความจำของพวกเขา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.