Sobes.tech
Middle

Por que as chaves no dicionário Python devem ser imutáveis e é possível usar chaves mutáveis?

sobes.tech IA

Resposta da IA

As chaves num dicionário Python devem ser imutáveis porque o dicionário usa hashing para acesso rápido aos valores. Se a chave for mutável, seu hash pode mudar após a inserção no dicionário, tornando impossível encontrar essa chave e, consequentemente, seu valor.

Por exemplo, strings, números e tuplas (que contêm elementos imutáveis) são chaves adequadas, pois seu hash é constante.

Chaves mutáveis (como listas ou dicionários) não podem ser usadas porque não têm um hash constante e não suportam o método hash(). Tentar usar um objeto mutável como chave causará um erro TypeError.

Exemplo:

my_dict = {}
my_dict[[1, 2, 3]] = "value"  # TypeError: unhashable type: 'list'

Assim, a imutabilidade das chaves garante o funcionamento correto da tabela hash do dicionário.