TypeError: unhashable typeTypeError: unhashable type
Een muteerbaar object is gebruikt waar een hashbaar (onveranderlijk) object vereist is, zoals een woordenboeksleutel of set-element.
Wat veroorzaakt deze fout
U heeft geprobeerd een list, dict, set of ander muteerbaar object te gebruiken als woordenboeksleutel of set-element. Alleen hashbare (onveranderlijke) objecten kunnen als sleutels worden gebruikt: strings, getallen, tuples (van hashbare elementen), frozensets.
Hoe op te lossen
Converteer lists naar tuples: tuple(my_list). Converteer sets naar frozensets: frozenset(my_set). Gebruik voor dicts een frozenset van items of converteer naar een hashbare representatie. Gebruik onveranderlijke gegevensstructuren als sleutels.
Voorbeeld
{[1, 2]: "value"} # TypeError: unhashable type: 'list'Gerelateerde foutcodes
FloatingPointErrorFloatingPointError
Een zwevende-kommabewerking is mislukt. Zelden gezien tenzij fpectl is ingeschakeld.
IndexErrorIndexError: list index out of range
Een reeksindex valt buiten het geldige bereik voor de gegeven reeks.
AttributeErrorAttributeError
Een object heeft het gevraagde attribuut of de gevraagde methode niet.
ProcessLookupErrorProcessLookupError — Procesopzoeking mislukt
Wordt gegenereerd wanneer een opgegeven proces (doorgaans een PID) niet bestaat.
RecursionErrorRecursionError
De maximale recursidiepte is overschreden.
NotImplementedErrorNotImplementedError
Een methode die door een subklasse geïmplementeerd moet worden, is nog niet geïmplementeerd.