TypeError: unhashable type: 'list’

TypeError: unhashable type: 'list’ zwykle oznacza, że próbujesz użyć listy jako argumentu skrótu. Oznacza to, że gdy spróbujesz zahaszować obiekt, którego nie da się zhasować, spowoduje to błąd. Dla ex. gdy używasz listy jako klucza w słowniku, nie można tego zrobić, ponieważ listy nie mogą być haszowane. Standardowym sposobem rozwiązania tego problemu jest rzucenie listy na krotkę .

 Co To jest Python: TypeError: unhashable type: 'list'

przykład

wyjście

ten błąd pokazuje, że klucz my_dict to List, A List nie jest typem hashowalnym w Pythonie . Klucze słownika muszą być typami niezmiennymi, a list jest typem zmiennym.

Fix: Cast listy do krotki

będziesz musiał zmienić swoją listę na krotki, jeśli chcesz umieścić je jako klucze w słowniku .

wyjście

hash() jest wbudowaną metodą Pythona, używaną do zwracania unikalnego numeru . Można to zastosować do dowolnego obiektu zdefiniowanego przez użytkownika, który nie zostanie zmieniony po zainicjowaniu. Ta właściwość jest używana głównie w kluczach słownikowych .

przykłady nieusuwalnych obiektów:

krotka i lista

chociaż krotki mogą wydawać się podobne do list, są one często używane w różnych sytuacjach i do różnych celów. Krotki są niezmienne i zazwyczaj zawierają heterogeniczną sekwencję elementów, do których można uzyskać dostęp poprzez rozpakowanie lub indeksowanie . Listy są zmienne, a ich elementy są zwykle jednorodne i są dostępne przez iterację nad listą.

 krotka i lista Pythona

hashowanie

hashowanie jest pojęciem w informatyce , które jest używane do tworzenia wysokiej wydajności, pseudo-random access struktur danych, w których duża ilość danych ma być przechowywana i szybko uzyskiwać do niej dostęp. Obiekty niezmienne lub obiekty, których nie można zmienić, można hashować i mają jedną unikalną wartość, która nigdy się nie zmieni. Funkcja haszująca jest funkcją, która przyjmuje obiekt, powiedzmy łańcuch taki jak „Java” i zwraca kod o stałym rozmiarze, zakładając, że zwracana wartość jest liczbą całkowitą .