TypeError: unhashable type: ‘list’

TypeError: unhashable type: ‘list’ înseamnă de obicei că încercați să utilizați o listă ca argument hash. Acest lucru înseamnă că, atunci când încercați să hash un obiect unhashable va rezulta o eroare. Pentru ex. când utilizați o listă ca cheie în dicționar , acest lucru nu se poate face deoarece listele nu pot fi hash. Modul standard de a rezolva această problemă este de a arunca o listă într-un tuplu .

 ce este Python: TypeError: tip unhashable: 'listă'

exemplu

ieșire

această eroare arată că cheia my_dict este Listă și lista nu este un tip hashable în Python . Cheile de dicționar trebuie să fie tipuri imuabile și lista este un tip mutabil.

Fix: Lista de distribuție într-un tuplu

va trebui să schimbați lista în tuple dacă doriți să le puneți ca chei în dicționar .

ieșire

hash() este o metodă python încorporată, utilizată pentru a returna un număr unic . Acest lucru poate fi aplicat oricărui obiect definit de utilizator care nu va fi modificat odată inițializat. Această proprietate este utilizată în principal în cheile dicționarului .

Exemple de obiecte Unhashable:

Tuple și Listă

deși tuple poate părea similar cu liste, ele sunt adesea folosite în situații diferite și în scopuri diferite. Tuplurile sunt imuabile și conțin de obicei o secvență eterogenă de elemente care sunt accesate prin despachetare sau indexare . Listele sunt mutabile, iar elementele lor sunt de obicei omogene și sunt accesate prin iterarea listei.

Python tuplu și lista

Hashing

Hashing este un concept în informatică , care este folosit pentru a crea de înaltă performanță, pseudo structuri de date cu acces aleator în cazul în care cantitate mare de date trebuie să fie stocate și accesate rapid. Obiectele imuabile sau obiectele care nu pot fi modificate sunt hashable și au o singură valoare unică care nu se va schimba niciodată. O funcție hashing este o funcție care ia un obiect, să zicem un șir, cum ar fi „Java” și returnează un cod de dimensiune fixă, să presupunem că valoarea returnată este un număr întreg .