Was bedeutet der nicht zerlegbare Typ ' Fehler in Python?


Beste Antwort

Lassen Sie uns zunächst verstehen, was hashbar und nicht hasasierbar ist. In einfachen Worten bezeichnen wir die Elemente, deren Werte nicht als Hash-fähig geändert werden können, und die Objekte, deren Werte nicht als Hash-fähig geändert werden können.

Beispielsweise können in Python alle unveränderlichen Objekte als Hash-fähig und als veränderbare Objekte bezeichnet werden kann als nicht zerlegbar bezeichnet werden. Nehmen wir ein Beispiel, wo wir einen solchen Fehler bekommen können und warum wir ihn bekommen.

Wenn Sie beispielsweise eine Liste als Schlüssel im Wörterbuch verwenden, ist dies nicht möglich und es wird ein Fehler TypeError: nicht zerlegbarer Typ.

Dies liegt daran, dass Listen nicht gehasht werden können und wir versuchen, eine Liste als Hash-Argument zu verwenden bedeutet, dass beim Versuch, ein nicht zerlegbares Objekt zu hashen, dieser Fehler auftritt. Die Standardmethode zur Lösung dieses Problems besteht darin, eine Liste in ein Tupel umzuwandeln.

Und da Tupel unveränderlich und somit hashbar sind, ist dies der Fall kann funktionieren.

Antwort

dict = {a: 1}

Es zeigt einen nicht verwischbaren Typfehler in Python cmd im Fenster.

Hashable bedeutet in Python, welcher Wert niemals änderbar ist. Und unhashable steht im Gegensatz zu Hashable. In Dictionary kann der Wert jederzeit aktualisiert werden, aber wenn der Python-Interpreter seinen Datentyp versteht. In meinem Beispiel dict = {a: 1} (key = a, value = 1) a ist ein String-Datentyp, aber hier folgt nicht die geschriebene String-Datentyp-Regel e Zeichen in Anführungszeichen setzen. Daher sagte der Interpreter, dass dieser Datentypwert nicht zerlegbar (veränderbar) ist, der Datentyp jedoch missverstanden wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.