Middle — Senior
Qual estrutura de dados está na base do dict em Python? Como são resolvidas as colisões?
sobes.tech IA
Resposta da IA
No Python, dict é implementado com base numa tabela de dispersão com endereçamento aberto e usando o método de endereçamento aberto com hashing duplo (open addressing with probing).
Pontos principais:
- As chaves são hashadas para obter um índice na matriz.
- Quando ocorre uma colisão (quando duas chaves têm o mesmo índice), é utilizado o método de probing, onde a próxima célula livre é procurada de acordo com um algoritmo definido.
- A partir do Python 3.6+, é usada uma implementação ordenada do dicionário, que mantém a ordem de inserção.
Um exemplo de resolução de colisões é o probing linear ou o hashing duplo, mas no CPython é usado um algoritmo com passo variável para o probing, a fim de reduzir a aglomeração.
Isso garante acesso, inserção e remoção eficientes de elementos.