Przejdź do treści
Wyjątki PythonBłąd
TypeError: unhashable type

TypeError: unhashable type

Użyto obiektu mutowalnego tam, gdzie wymagany jest obiekt hashowalny (niemutowalny), np. jako klucz słownika lub element zbioru.

python

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'
Oficjalna dokumentacja

Powiązane kody błędów