Quiero implementar un HashMap en Python. Quiero pedirle a un usuario una entrada. dependiendo de su entrada, estoy recuperando información del HashMap. Si el usuario ingresa una clave de HashMap, me gustaría recuperar el valor correspondiente.
¿Cómo implemento esta funcionalidad en 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")
Respuestas:
El diccionario Python es un tipo incorporado que admite pares clave-valor.
además de usar la palabra clave dict:
o:
fuente
dict
, que sería más apropiado en este contexto, esdict(key1=value1, key2=value2, ...)
que requiere las claves de las cadenas que también son identificadores válidos de Python (e internamente, esto también crea un diccionario).dict
constructor admite argumentos de palabras clave y funciona comodef dict(**kwds): return kwds
si tuviera argumentos de palabras clave.Todo lo que quería (en el momento en que se hizo la pregunta originalmente) era una pista. Aquí hay una pista: en Python, puedes usar diccionarios .
fuente
Está integrado para Python. Ver diccionarios .
Según su ejemplo:
A continuación, puede acceder de la siguiente manera:
También vale la pena mencionar: puede usar cualquier tipo de datos no mutable como clave. Es decir, puede usar una tupla, un booleano o una cadena como clave.
fuente
Y para recuperar valores:
O
Eso es usar números como teclas, poner comillas alrededor de los números para usar cadenas como teclas.
fuente
Los mapas hash están integrados en Python, se llaman diccionarios :
Uso:
Consulte la documentación para obtener más información, por ejemplo, métodos integrados, etc. Son geniales y muy comunes en los programas de Python (como era de esperar).
fuente
Aquí está la implementación del Hash Map usando python. Por simplicidad, el hash map tiene un tamaño fijo 16. Esto se puede cambiar fácilmente. Rehashing está fuera del alcance de este código.
Salida:
fuente
hash(key) & 15
,73%15= 13
pero es equivalente:1001001 & 0001111 = 0001111
es decir,9
y no13
, creo que usar mod es la operación correcta. ¡Corrígeme si estoy equivocado!fuente
Python Counter también es una buena opción en este caso:
Esto devuelve un dict con el recuento de cada elemento en la lista:
fuente
En python usarías un diccionario.
Es un tipo muy importante en python y se usa con frecuencia.
Puedes crear uno fácilmente
Los diccionarios tienen muchos métodos:
No puede influir en el orden de un dict.
fuente