TypeError: unhashable typeTypeError: tipo não-hasheável
Um objeto mutável foi usado onde um objeto hasheável (imutável) é necessário, como chave de dicionário ou elemento de conjunto.
O que causa este erro
Você tentou usar uma lista, dict, set ou outro objeto mutável como chave de dicionário ou elemento de conjunto. Apenas objetos hasheáveis (imutáveis) podem ser usados como chaves: strings, números, tuplas (de elementos hasheáveis), frozensets.
Como corrigir
Converta listas em tuplas: tuple(my_list). Converta sets em frozensets: frozenset(my_set). Para dicts, use um frozenset de itens ou converta para uma representação hasheável. Use estruturas de dados imutáveis como chaves.
Exemplo
{[1, 2]: "value"} # TypeError: unhashable type: 'list'Códigos de Erro Relacionados
FloatingPointErrorFloatingPointError
Uma operação de ponto flutuante falhou. Raramente observado, a menos que fpectl esteja habilitado.
IndexErrorIndexError: list index out of range
Um índice de sequência está fora do intervalo válido para a sequência fornecida.
AttributeErrorAttributeError
Um objeto não possui o atributo ou método solicitado.
ProcessLookupErrorProcessLookupError — Busca de Processo Falhou
Lançada quando um determinado processo (tipicamente um PID) não existe.
RecursionErrorRecursionError
A profundidade máxima de recursão foi ultrapassada.
NotImplementedErrorNotImplementedError
Um método que deveria ser implementado por uma subclasse ainda não foi implementado.