7. Diccionarios - manuelmarinduque/Apuntes_Python_3 GitHub Wiki
Tomado de Diccionarios. Vídeo 9
-
Los diccionarios son estructuras de datos que permiten almacenar valores de diferentes tipos e incluso listas, tuplas y otros diccionarios.
-
Su principal característica es que cada elemento es una asociación o pareja de tipo clave : valor, donde la clave es única, no puede haber dos claves iguales.
-
La clave de cada valor puede ser de cualquier tipo e incluso una tupla.
nombre_dicionario = {clave_1 : valor_1, clave_2 : valor_2, clave_n : valor_n}
# Entre llaves
miDiccionario = {"Alemania": "Berlin", "Colombia": "Bogotá", "Francia": "París"}
# Asociación o pareja Pais : Capital
Para obtener el valor de un elemento se accede a su clave, de la forma nombre_diccionario[clave]:
print(miDiccionario["Alemania"])
# Imprime: Berlín
No es recomendable el método anterior, pues si se está desarrollando en web y la clave no existe, saldrá error. La mejor forma sería la siguiente: Fuente complemento
miDiccionario = {"Alemania" : "Berlin", "Colombia" : "Bogotá", "Francia" : "París"}
print(miDiccionario.get("Alemania"))
# Imprime: "Berlin"
print(miDiccionario.get("Perú"))
# Imprime: "None", porque la clave no existe.
Nota: El valor "None" es equivalente al valor "NULL" de otros lenguages de programación.
Para agregar un nuevo elemento: nombreDicionario[clave] = valor:
miDiccionario = {"Alemania" : "Berlin", "Colombia" : "Bogotá", "Francia" : "París"}
miDiccionario["Italia"] = "Lisboa"
Para asignar un nuevo valor a una clave sólo se debe sobreescribir:
miDiccionario = {"Alemania" : "Berlin", "Colombia" : "Bogotá", "Francia" : "París", "Italia" : "Lisboa"}
miDiccionario["Italia"] = "Roma"
Para eliminar un elemento de un diccionario se utiliza el método del, de la forma del nombreDicionario[clave]:
miDiccionario = {"Alemania":"Berlin", "Colombia":"Bogotá", "Francia":"París"}
del miDiccionario["Francia"]
Para obtener las claves de un diccionario se utiliza la función keys, retornándolas en una tupla.
Para obtener los valores de un diccionario se utiliza la función values, retornándolos en una tupla.
Para obtener la longitud de un diccionario se utiliza la función len(diccionario).
miDiccionario = {"Alemania":"Berlin", "Colombia":"Bogotá", "Francia":"París"}
print(miDiccionario.keys())
print(miDiccionario.values())
print(len(miDiccionario))
Recorrer un diccionario a través del bucle for usando la función items(), la cual retorna la clave del elemento y su valor:
miDiccionario = {"Alemania":"Berlin", "Colombia":"Bogotá", "Francia":"París"}
for clave, valor in miDiccionario.items():
print(clave, valor)
Recorrer un diccionario a través del bucle for usando la función enumerate(), la cual retorna la clave del elemento y su índice:
miDiccionario = {"Nombre":"Michel", "Anillos":[1991,1995,1997]}
for i, item in enumerate(miDiccionario):
print("La clave del elemento {} es {} y su valor es {}".format(i,item,miDiccionario[item]))
# Salida:
# La clave del elemento 0 es Nombre y su valor es Michel
# La clave del elemento 1 es Anillos y su valor es [1991, 1995, 1997]
Si se usa el bucle for estándar, el elemento iterador corresponde a la clave del elemento del diccionario.
miTupla = ["Alemania", "Colombia" "Francia"]
miDiccionario = {miTupla[0]:"Berlin", miTupla[1]: "Bogotá", miTupla[2]:"Paris"}
print(miDiccionario)
print(miDiccionario["Francia"]) #A cceder a un valor.
miDiccionario = {"Nombre":"Michel", "Anillos":[1991,1995,1997]}
print(miDiccionario["Anillos"])
# Salida: [1991,1995,1997]
miDiccionario = {"Nombre":"Michel", "Anillos":{"Temporadas":[1991,1995,1997]}}
print(miDiccionario["Anillos"])
# Imprime: diccionario de valores {"Temporadas":[1991,1995,1997]}
# Lista vacía:
personajes = []
p1 = {"nombre" : "Gandalf", "clase" : "Mago", "raza" : "Humano"}
p2 = {"nombre" : "Legolas", "clase" : "Arquero", "raza" : "Elfo"}
p3 = {"nombre" : "Gimli", "clase" : "Guerrero", "raza" : "Humano"}
personajes.append(p1)
personajes.append(p2)
personajes.append(p3)
# Recorrer la lista
for p in personajes:
print(p.get("nombre"), "es un", p.get("clase"), "de raza", p.get("raza"))