TypeError: unhashable typeTypeError: unhashable type
Użyto obiektu mutowalnego tam, gdzie wymagany jest obiekt hashowalny (niemutowalny), np. jako klucz słownika lub element zbioru.
Co powoduje ten błąd
Podjęto próbę użycia listy, słownika, zbioru lub innego mutowalnego obiektu jako klucza słownika lub elementu zbioru. Jako klucze mogą być używane tylko obiekty hashowalme (niemutowalne): ciągi znaków, liczby, krotki (z elementów hashowalnych), frozenset.
Jak to naprawić
Konwertuj listy na krotki: tuple(my_list). Konwertuj zbiory na frozenset: frozenset(my_set). Dla słowników użyj frozenset z elementów lub przekształć do hashowalnej reprezentacji. Używaj niemutowalnych struktur danych jako kluczy.
Przykład
{[1, 2]: "value"} # TypeError: unhashable type: 'list'Powiązane kody błędów
FloatingPointErrorFloatingPointError
Operacja zmiennoprzecinkowa nie powiodła się. Rzadko spotykane, chyba że włączony jest fpectl.
IndexErrorIndexError: list index out of range
Indeks sekwencji jest poza prawidłowym zakresem dla danej sekwencji.
AttributeErrorAttributeError
Obiekt nie posiada żądanego atrybutu ani metody.
ProcessLookupErrorProcessLookupError — Wyszukiwanie procesu nie powiodło się
Zgłaszane, gdy wskazany proces (zazwyczaj po PID) nie istnieje.
RecursionErrorRecursionError
Przekroczono maksymalną głębokość rekurencji.
NotImplementedErrorNotImplementedError
Metoda, która powinna być zaimplementowana przez podklasę, nie została jeszcze zaimplementowana.