שגיאת unhashable type: 'list'

היי,
ב- Leveraging Simple Dictionaries (מחברת אחרונה, שבוע 4). אני מנסה בתוך לולאת for מקוננת לעבור על הערכים שאני קוראת מתוך מילון. המילון מורכב משני מפתחות שלכל אחד מהם כערך מוצמדת רשימה של רשימות.

כשאני קוראת בחלון נפרד (מחוץ ללולאה) באמצעות אותה פונקציה לערכים האלו, הם מתקבלים כצפוי, וכשאני מנסה לעבור עליהם בלולאה, או מחוץ ללואה, בתוך הפונקציה, ומנסה לבצע להם השמה, אני מקבלת את השגיאה שבכותרת.

ישבתי על זה אתמול והיום כמה שעות, חיפשתי באנטרנט, אך הסיטואציות שמצאתי לא תיארו את המקרה שלי והפתרונות שהוצעו (כמו להפוך לטיפוס שאינו מיוטבלי כמו tuple) לא עזרו…

אשמח להכוונה או הסבר נוסף על הבעיה.

לייק 1

לרוב השגיאה הזו קורית כשאת מנסה להכניס למילון (או ל-set, טיפוס נתונים שעליו תלמדו בקרוב) מפתח שהוא מטיפוס מיוטבילי, למשל d[[1, 2]] = 2 כאשר d הוא מילון, או כשאת מנסה לגשת למפתח מיוטבילי (גם אם אינו קיים במילון). לכן ראית הצעות של להפוך לטיפוס שהוא immutable.
נסי להוסיף הדפסות בשורה לפני שנזרקת שגיאה ולבדוק מה ה-type שאיתו את מנסה לגשת למילון? מה ה-type של המפתח שאת מנסה להכניס למילון?

2 לייקים

קולולווושששששש

בדקתי את זה מאתיים פעם האמת, ובסוף מצאתי שזה סטרינג בודד שהתחבא בתוך ליסט.

תודה!

לייק 1