Eu quero implementar um HashMap em Python. Quero pedir uma entrada ao usuário. dependendo da entrada dele, estou recuperando algumas informações do HashMap. Se o usuário digitar uma chave do HashMap, eu gostaria de recuperar o valor correspondente.
Como implemento essa funcionalidade no Python?
HashMap<String,String> streetno=new HashMap<String,String>();
streetno.put("1", "Sachin Tendulkar");
streetno.put("2", "Dravid");
streetno.put("3","Sehwag");
streetno.put("4","Laxman");
streetno.put("5","Kohli")
Respostas:
O dicionário Python é um tipo interno que suporta pares de valores-chave.
além de usar a palavra-chave dict:
ou:
fonte
dict
, que seria mais apropriado nesse contexto, édict(key1=value1, key2=value2, ...)
que requer as chaves para as strings que também são identificadores Python válidos (e internamente, isso também cria um dicionário).dict
construtor suporta argumentos de palavras-chave e funciona comodef dict(**kwds): return kwds
se fossem dados argumentos de palavras-chave.Tudo o que você queria (no momento em que a pergunta foi feita originalmente) era uma dica. Aqui está uma dica: No Python, você pode usar dicionários .
fonte
Está embutido no Python. Veja dicionários .
Com base no seu exemplo:
Você pode acessá-lo assim:
Também vale a pena mencionar: ele pode usar qualquer tipo de dados não mutável como chave. Ou seja, ele pode usar uma tupla, booleano ou string como chave.
fonte
E para recuperar valores:
Ou
Isso é usar número como chaves, colocar aspas ao redor dos números para usar cadeias de caracteres como chaves.
fonte
Os mapas de hash são integrados no Python, chamados dicionários :
Uso:
Consulte a documentação para obter mais informações, por exemplo, métodos internos e assim por diante. Eles são ótimos e muito comuns em programas Python (sem surpresa).
fonte
Aqui está a implementação do Hash Map usando python. Para simplificar, o mapa de hash tem um tamanho fixo 16. Isso pode ser alterado facilmente. A reformulação está fora do escopo deste código.
Resultado:
fonte
hash(key) & 15
,73%15= 13
, Mas é equivalente:1001001 & 0001111 = 0001111
ou seja,9
e não13
, eu acho que usar mod é a operação correta. Corrija-me se eu estiver errada!fonte
Python Counter também é uma boa opção neste caso:
Isso retorna um ditado com a contagem de cada elemento na lista:
fonte
Em python, você usaria um dicionário.
É um tipo muito importante em python e frequentemente usado.
Você pode criar um facilmente
Os dicionários têm muitos métodos:
Você não pode influenciar a ordem de um ditado.
fonte