En este post voy a explicar cómo usar diccionarios en Python. El diccionario es un Hash Table (algo que expliqué aquí de cómo usarlo en Java). Como he hecho en las últimas explicaciones que he hecho de Python, aquí les dejo el video que explica todo y después va el código que aparece en el video.
12Diccionario1.py
1.64 KiB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Primer ejemplo de uso de diccionarios
# Un diccionario es como una lista, solo que en lugar de tener
# un índice numérico, puede ser de casi cualquier tipo
# De forma más técnica, se trata de una tabla de Hash (Hash Table)
# Creo un diccionario para traducir números de español a inglés
espanolAIngles = dict() # Crea un diccionario vacío
# Agrego unos cuantos elementos al diccionario:
# (no se pueden repetir los índices)
espanolAIngles["uno"] = "one"
espanolAIngles["dos"] = "two"
espanolAIngles["tres"] = "three"
espanolAIngles["cuatro"] = "four"
espanolAIngles["cinco"] = "five"
# Muestro lo que tiene el diccionario hasta ahorita
print("Contenido del diccionario\n",espanolAIngles)
# Con el mismo formato de salida, puedo inicializar el diccionario
estados = {"jal":"Jalisco","mich":"Michoacán","cdmx":"Ciudad de México","ver":"Veracruz","coah":"Coahuila"}
estados["son"] = "Sonora"
print("Diccionario de estados:")
print(estados)
# El índice me permite buscar un valor
print("El estado jal es",estados["jal"])
# len me da el número de valores en la lista (clave y valor)
print("La cantidad de estados almacenados es de",len(estados))
# El in nos permite ver si algo está en un diccionario
if "mich" in estados:
print(estados["mich"],"está en la lista de estados")
else:
print("Michoacán no está en la lista")
if "chih" not in estados:
print("Chihuahua no está en la lista")
else:
print(estados["chih"],"está en la lista")
# Para buscar un valor en la lista, sin conocer la llave (índice), uso values
# Aquí creo una lista con los valores
if "Veracruz" in list(estados.values()):
print("Veracruz está en la lista")
13Diccionario2.py
704 B
1
2
3
4
5
6
7
8
9
10
11
12
13
# Ejemplo del uso de diccionario para contar la cantidad
# de cada letra en un texto
# En estadística diríamos que estamos creando un histograma
palabra = input("Escribe un texto:") # Pido un texto
dicc = dict() # Creo un diccionario vacío
for c in palabra: # Hago un ciclo yendo letra por letra de la palabra dada
if c not in dicc: # Si la letra no está en el diccionario...
dicc[c] = 1 # ...lo agrego con un valor de 1
else: # Si ya está...
dicc[c] = dicc[c] + 1 # ...le sumo 1
print("Conteo de palabras:",dicc) # Muestro el diccionario
14Diccionario3.py
732 B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Aquí muestro cómo usar ciclos con un diccionario
# Creo el diccionario con 6 elementos
edades = {"tony":51,"cesar":16,"diego":17,"francisco":18,"erika":15,"mariana":16}
print("Gente menores a 30:")
# uso el for para recorrer la lista y mostrarla al usuario
for llave in edades:
if edades[llave] < 30: # Con esto solo muestro los elementos cuya edad es menor a 30
print(llave,edades[llave])
print("\nMostrando todo en orden:")
# Si quiero mostrar en orden, creo una lista de las llaves en el diccionario
# con el método keys
listaLlaves = list(edades.keys())
# Luego ordeno esta lista
listaLlaves.sort()
# Luego muestro el diccionario en orden
for llave in listaLlaves:
print(llave,edades[llave])
Espero que te haya sido de utilidad. ¡Saludos!
P.D. La imagen que usé la tomé de aquí.