Python TypeError: Nicht hashbarer Typ: Liste
-
der
TypeError: unhashable type: 'list'
in Python - Hash-Funktion in Python
-
Korrigieren Sie den
TypeError: unhashable type: 'list'
in Python
Dieser Artikel behandelt den TypeError: unhashable type: 'list'
und wie man ihn in Python behebt.
der TypeError: unhashable type: 'list'
in Python
Dieser Fehler tritt auf, wenn Sie nicht hashfähige Objekte wie eine Liste als Schlüssel an das Python-Wörterbuch übergeben oder den Hashwert einer Funktion finden.
Wörterbücher sind eine Datenstruktur in Python, die in Schlüssel-Wert-Paaren arbeitet, jeder Schlüssel hat einen Wert und um auf die Werte von Werten zuzugreifen, benötigen Sie die Schlüssel wie Array-Indizes.
Syntax eines Wörterbuchs:
dic = {"key": "Values"}
Hashfähige Objekte sind solche, deren Wert sich im Laufe der Zeit nicht ändert, aber gleich bleiben. Tupel
und strings
sind Arten von hashfähigen Objekten.
Code:
# creating a dictionary
dic = {
# list as a key --> Error because lists are immutable
["a", "b"]: [1, 2]
}
print(dic)
Ausgang:
TypeError: unhashable type: 'list'
Wir haben eine Liste ["a","b"]
als Schlüssel
verwendet, aber der Compiler hat einen TypeError: unhashable type: 'list'
geworfen.
Lassen Sie uns den Hash-Wert der Liste manuell finden.
Code:
lst = ["a", "b"]
hash_value = hash(lst)
print(hash_value)
Ausgang:
TypeError: unhashable type: 'list'
Die Funktion hash()
wird verwendet, um den Hashwert eines bestimmten Objekts zu finden, aber das Objekt muss unveränderlich sein wie string
, tuple
usw.
Hash-Funktion in Python
Die Funktion hash()
ist eine Verschlüsselungstechnik, die das unveränderliche Objekt verschlüsselt und ihm einen eindeutigen Wert zuweist, der als Hash-Wert des Objekts bekannt ist. Unabhängig von der Größe der Daten bieten sie dieselbe Größe an eindeutigem Wert.
Code:
string_val = "String Value"
tuple_val = (1, 2, 3, 4, 5)
msg = """Hey there!
Welcome to DelfStack"""
print("Hash of a string object\t\t", hash(string_val))
print("Hash of a tuple object\t\t", hash(tuple_val))
print("Hash of a string message\t", hash(tuple_val))
Ausgang:
Hash of a string object -74188595
Hash of a tuple object -1883319094
Hash of a string message -1883319094
Die Hash-Werte sind gleich groß und für jeden Wert eindeutig.
Korrigieren Sie den TypeError: unhashable type: 'list'
in Python
Um den TypeError in Python zu beheben, müssen Sie unveränderliche Objekte als Schlüssel von Wörterbüchern und als Argumente für die Funktion hash()
verwenden. Beachten Sie im obigen Code, dass die Funktion hash()
perfekt mit veränderlichen Objekten wie tuple
und string
funktioniert.
Mal sehen, wie wir den TypeError: unhashable type: 'list'
in Wörterbüchern beheben können.
Code:
# creating a dictionary
dic = {
# string as key
"a": [1, 2]
}
print(dic)
Ausgang:
{'a': [1, 2]}
Dieses Mal geben wir als Schlüssel einen String "a"
an, mit dem man gut arbeiten kann, weil strings
veränderbar sind.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung
Verwandter Artikel - Python TypeError
- Beheben Sie den Python TypeError: List Indices Must Be Integers, Not List
- Beheben Sie den TypeError: Not All Arguments Converted While String Formatting in Python
- Lösen Sie den TypeError: In Python ist eine ganze Zahl erforderlich
- Python TypeError: 1 erforderliches Positionsargument fehlt
- TypeError: Iteration über Non-Sequence