Sobes.tech
Middle

Quais são as restrições nas chaves em dict em Python?

sobes.tech IA

Resposta da IA

No Python, as chaves em um dicionário (dict) devem ser objetos hasháveis (imutáveis). Isso significa que as chaves devem ter um estado imutável e implementar o método __hash__().

Restrições principais:

  • As chaves devem ser tipos imutáveis, por exemplo: strings (str), números (int, float), tuplas (tuple), desde que todos os elementos da tupla também sejam hasháveis.
  • Não é possível usar tipos mutáveis, como listas (list), conjuntos (set), dicionários (dict) como chaves, pois eles não são hasháveis.

Exemplo:

valid_dict = {
    "key": 1,
    42: "value",
    (1, 2): "tuple key"
}

invalid_dict = {
    [1, 2]: "list as key"  # causará um TypeError
}

Se tentar usar um objeto mutável como chave, o Python gerará um erro TypeError: unhashable type.