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 .

 mi a Python: TypeError: unhashable típus: 'list'

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.

 Python Tuple and List

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 .