Qual é o significado de ' tipo não hashable ' erro no Python?


Melhor resposta

Vamos primeiro entender o que é hashble e o que é inalcançável. Em termos simples, denominamos os itens cujos valores não podem ser alterados como hashable e os objetos cujos valores podem ser alterados como não hashable.

Por exemplo em Python, todos os objetos imutáveis ​​podem ser chamados de hashable enquanto objetos mutáveis pode ser denominado como inalterável. Vamos dar um exemplo onde podemos obter esse erro e por que o obtemos.

Por exemplo, quando você usa uma lista como uma chave no dicionário, isso não pode ser feito e obteremos um erro TypeError: tipo inalterável.

Isso ocorre porque as listas não podem “ter hash e estamos tentando usar uma lista como um argumento hash. Isso significa que quando você tenta hash um objeto não hash, isso resultará neste erro. A maneira padrão de resolver esse problema é lançar uma lista para uma tupla.

E como tuplas são imutáveis ​​e, portanto, hashble, ele pode funcionar.

Resposta

dict = {a: 1}

É mostrado um erro de tipo inalterável no cmd python na janela.

O significado de hashable em python é qual valor nunca pode ser alterado. E inalterável é oposto a Hashable. No dicionário, o valor pode ser atualizado a qualquer momento, mas se o interpretador python entender seu tipo de dados. No meu exemplo dict = {a: 1} (chave = a, valor = 1) a é um tipo de dados de string, mas aqui não segue a regra de tipo de dados de string que é escrita e caracteres entre aspas. Portanto, o intérprete disse que este valor de tipo de dados é inalterável (alterável), mas o tipo de dados é mal compreendido.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *