TypeError: unhashable type: ‘list’
TypeError: unhashable type: ‘list’ általában azt jelenti, hogy egy listát próbál használni hash argumentumként. Ez azt jelenti, hogy amikor megpróbál hash egy unhashable objektum hibát fog eredményezni. Az ex. ha egy listát használ kulcsként a szótárban, ezt nem lehet megtenni, mert a listákat nem lehet kivonatolni. A probléma megoldásának szokásos módja egy lista leadása .
példa
kimenet
ez a hiba azt mutatja, hogy a my_dict kulcs List, A List pedig nem hashable típus a Pythonban . A szótárkulcsoknak megváltoztathatatlan típusoknak kell lenniük, a lista pedig változtatható típus.
Fix: Cast lista egy tuple
akkor meg kell változtatni a listát a tuples, ha azt szeretné, hogy azokat a kulcsokat a szótárban .
kimenet
a hash() egy beépített python módszer, amelyet egyedi szám visszaadására használnak . Ez lehet alkalmazni, hogy minden felhasználó által definiált objektum, amely nem fog változni, ha inicializálni. Ezt a tulajdonságot elsősorban a szótárkulcsokban használják .
példák a feltörhetetlen objektumokra:
Tuple és List
bár a tuples hasonlónak tűnhet a listákhoz, gyakran használják különböző helyzetekben és különböző célokra. A sorozatok változhatatlanok, és általában heterogén elemsorozatot tartalmaznak, amelyekhez kicsomagolás vagy indexelés útján lehet hozzáférni . A listák változékonyak, elemeik általában homogének, és a lista felett iterálva érhetők el.
Hashing
a Hashing egy olyan koncepció a számítástechnikában , amelyet nagy teljesítményű, pszeudo véletlen hozzáférésű adatstruktúrák létrehozására használnak, ahol nagy mennyiségű adatot kell tárolni és gyorsan elérni. A megváltoztathatatlan vagy megváltoztathatatlan objektumok kivonatolhatók, és egyetlen egyedi értékük van, amely soha nem változik. A hash függvény egy olyan függvény, amely egy objektumot, mondjuk egy karakterláncot, például “Java”, rögzített méretű kódot ad vissza, feltételezve, hogy a visszatérési érték egész szám .