TypeError: Unhashable Type: Slice in Python

Manav Narula 21 Juni 2023
  1. TypeError: unhashable type: 'slice' in Python
  2. TypeError: unhashable type: 'slice' in Python behoben
  3. Abschluss
TypeError: Unhashable Type: Slice in Python

Slicing ist eine sehr verbreitete Technik in Python. Es ermöglicht uns, Daten aus einer bestimmten Sequenz wie einer Zeichenfolge, einer Liste, einem Tupel und mehr zu extrahieren, indem wir die Indizes der Elemente verwenden.

Ein sehr einfaches Beispiel für Slicing ist unten.

lst = [2, 5, 6, 7, 3, 1]
print(lst[0:2])

Ausgang:

[2, 5]

Das obige Beispiel extrahiert einen Teil der Liste unter Verwendung der Slicing-Technik. Beachten Sie die Verwendung der Indizes.

TypeError: unhashable type: 'slice' in Python

Ein TypeError wird in Python ausgelöst, wenn wir versuchen, eine nicht unterstützte Operation für einen bestimmten Datentyp auszuführen. Ein TypeError kann auch beim Slicing ausgelöst werden, wenn wir versuchen, diese Technik auf nicht unterstützte Datentypen wie ein Wörterbuch, DataFrame und mehr anzuwenden.

Zum Beispiel:

d = {"a": 10, "b": 11}
d[0:2]

Ausgang:

TypeError: unhashable type: 'slice'

Beachten Sie den im obigen Beispiel ausgelösten Fehler unhashable type: 'slice'.

Wörterbücher verwenden eine Hash-Funktion, um Werte anhand ihrer jeweiligen Schlüssel zu finden. Die Indizes der Werte werden nicht gespeichert.

Unhashable bedeutet hier, dass der Slicing-Vorgang nicht hashbar ist und nicht mit Wörterbüchern funktioniert.

Dieses Tutorial zeigt, wie man den Python-Fehler unhashable type: 'slice' löst.

TypeError: unhashable type: 'slice' in Python behoben

Die grundlegendste Lösung besteht darin, Sequenzen zu verwenden, die Slicing unterstützen. Dazu gehören Listen, Zeichenfolgen, Wörterbücher, Tupel und andere unterstützte Sequenzen.

Wir können das Wörterbuch, das Slicing nicht unterstützt, in eine Liste konvertieren und diesen Fehler beheben.

Für ein Wörterbuch können wir values() und keys() verwenden, um ein Ansichtsobjekt der Werte und Schlüssel im Wörterbuch zu erhalten. Dieses Objekt kann mit der Funktion list() in eine Liste umgewandelt werden, die Slicing unterstützt.

Siehe Code unten.

d = {"a": 10, "b": 11}
print(list(d.values())[0:2])
print(list(d.keys())[0:2])

Ausgang:

[10, 11]
['a', 'b']

Das obige Beispiel konvertiert das Wörterbuch in zwei Listen mit Schlüsseln und Werten. Wir führen Slicing auf diesen Listen durch.

Wir können auch die Funktion items() verwenden, um ein Ansichtsobjekt der Schlüssel- und Wertpaare in einer Liste von Tupeln zurückzugeben.

Siehe Code unten.

d = {"a": 10, "b": 11}
print(list(d.items())[0:2])

Ausgang:

[('a', 10), ('b', 11)]

Abschluss

Dieses Tutorial demonstriert den Fehler unhashable type: 'slice' in Python und wie man ihn behebt. Wir haben zuerst die Slicing-Technik in Python besprochen.

Wir haben gezeigt, wie Wörterbücher und der Grund dafür diese Technik nicht unterstützen. Der Fix beinhaltet die Verwendung verschiedener Funktionen wie items(), keys() und values(), die mithilfe des Wörterbuchs eine Liste erstellen können, die weiter zum Slicing verwendet werden kann.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Python Error