TypeError: unhashable Typ: ‚list‘
TypeError: unhashable Typ: ‚list‘ bedeutet normalerweise, dass Sie versuchen, eine Liste als Hash-Argument zu verwenden. Dies bedeutet, dass beim Versuch, ein nicht hashbares Objekt zu hashen, ein Fehler auftritt. Für ex. wenn Sie eine Liste als Schlüssel im Wörterbuch verwenden, ist dies nicht möglich, da Listen nicht gehasht werden können. Die Standardmethode zur Lösung dieses Problems besteht darin, eine Liste in ein Tupel umzuwandeln.
example
output
Dieser Fehler zeigt, dass der Schlüssel my_dict List und List in Python kein hashbarer Typ ist. Wörterbuchschlüssel müssen unveränderliche Typen sein, und list ist ein veränderlicher Typ.
Fix: Liste in ein Tupel umwandeln
Sie müssen Ihre Liste in Tupel ändern, wenn Sie sie als Schlüssel in Ihr Wörterbuch einfügen möchten.
Ausgabe
Der hash() ist eine eingebaute Python-Methode, die verwendet wird, um eine eindeutige Nummer zurückzugeben. Dies kann auf jedes benutzerdefinierte Objekt angewendet werden, das nach der Initialisierung nicht geändert wird. Diese Eigenschaft wird hauptsächlich in Wörterbuchschlüsseln verwendet .
Beispiele für nicht hashbare Objekte:
Tupel und Liste
Obwohl Tupel Listen ähnlich erscheinen mögen, werden sie häufig in verschiedenen Situationen und für verschiedene Zwecke verwendet. Tupel sind unveränderlich und enthalten normalerweise eine heterogene Folge von Elementen, auf die durch Entpacken oder Indizieren zugegriffen wird . Listen sind veränderbar, und ihre Elemente sind normalerweise homogen und werden durch Iterieren über die Liste aufgerufen.
Hashing
Hashing ist ein Konzept in der Informatik, das verwendet wird, um hochleistungsfähige Pseudo-Direktzugriffsdatenstrukturen zu erstellen, in denen große Datenmengen gespeichert und schnell abgerufen werden sollen. Unveränderliche Objekte oder Objekte, die nicht geändert werden können, sind hashbar und haben einen einzigen eindeutigen Wert, der sich niemals ändert. Eine Hashing-Funktion ist eine Funktion, die ein Objekt verwendet, z. B. eine Zeichenfolge wie „Java“, und einen Code fester Größe zurückgibt.