9. Diccionarios
Vídeo
Notas personales
Un diccionario es una estructura de datos que nos permite almacenar valores de diferentes tipos (enteros, cadenas de texto, decimales…) e incluso listas, tuplas y otros diccionarios.
Su principal característica reside en que cada dato se almacena asociado a una clave única, de tal forma que se crea una relación de tipo clave:valor
para cada elemento guardado. Además, los mencionados elementos no están ordenados, es decir, el orden es indiferente (por la presencia las referidas claves únicas) a la hora de guardar información en un diccionario.
Su sintaxis es nombre = {clave:valor}
.
Creemos un diccionario que almacene países (clave) y capitales (valor), y veamos cómo se accede a cada uno de sus elementos:
mi_dicc = {"Alemania": "Berlin",
"Francia": "París",
"Reino Unido": "Londres",
"España": "Madrid"}
print(mi_dicc["Francia"]) # París
print(mi_dicc["España"]) # Madrid
print(mi_dicc) # {'Alemania': 'Berlin', 'Francia': 'París', 'Reino Unido': 'Londres', 'España': 'Madrid'}
Agregamos nuevos elementos al diccionario con el patrón nombre[clave] = valor
:
mi_dicc["Italia"] = "Lisboa"
print(mi_dicc) # {'Alemania': 'Berlin', 'Francia': 'París', 'Reino Unido': 'Londres', 'España': 'Madrid', 'Italia': 'Lisboa'}
Modificamos un valor asignado a una clave simplemente sobreescribiéndolo:
mi_dicc["Italia"] = "Roma"
print(mi_dicc) # {'Alemania': 'Berlin', 'Francia': 'París', 'Reino Unido': 'Londres', 'España': 'Madrid', 'Italia': 'Roma'}
Suprimimos elementos con del
:
del mi_dicc["Reino Unido"]
print(mi_dicc) # {'Alemania': 'Berlin', 'Francia': 'París', 'España': 'Madrid', 'Italia': 'Roma'}
Generemos un diccionario que presente diferentes tipos de datos:
mi_dicc = {"Alemania": "Berlín",
23: "Jordan",
"Mosqueteros": 3}
print(mi_dicc) # {'Alemania': 'Berlín', 23: 'Jordan', 'Mosqueteros': 3}
Empleemos una tupla (el procedimiento sería similar si optamos por una lista) para asignar la clave a cada uno de los valores:
mi_tupla = ("España", "Francia", "Reino Unido", "Alemania")
mi_dicc = {mi_tupla[0]: "Madrid",
mi_tupla[1]: "París",
mi_tupla[2]: "Londres",
mi_tupla[3]: "Berlín"}
print(mi_dicc) # {'España': 'Madrid', 'Francia': 'París', 'Reino Unido': 'Londres', 'Alemania': 'Berlín'}
print(mi_dicc["España"]) # Madrid
print(mi_dicc[mi_tupla[0]]) # Madrid
También podemos almacenar tuplas (o listas…) como valores:
mi_dicc = {23: "Jordan",
"Nombre": "Michael",
"Equipo": "Chicago",
"Anillos": (1991, 1992, 1993, 1996, 1997, 1998)}
print(mi_dicc) # {23: 'Jordan', 'Nombre': 'Michael', 'Equipo': 'Chicago', 'Anillos': (1991, 1992, 1993, 1996, 1997, 1998)}
print(mi_dicc["Equipo"]) # Chicago
print(mi_dicc["Anillos"]) # (1991, 1992, 1993, 1996, 1997, 1998)
Asimismo, guardemos un diccionario dentro de otro:
mi_dicc = {23: "Jordan",
"Nombre": "Michael",
"Equipo": "Chicago",
"Anillos": {"Temporadas": (1991, 1992, 1993, 1996, 1997, 1998)}}
print(mi_dicc) # {23: 'Jordan', 'Nombre': 'Michael', 'Equipo': 'Chicago', 'Anillos': {'Temporadas': (1991, 1992, 1993, 1996, 1997, 1998)}}
print(mi_dicc["Anillos"]) # {'Temporadas': (1991, 1992, 1993, 1996, 1997, 1998)}
Algunos métodos interesantes a conocer son:
.keys()
, para acceder a las claves de un diccionario;.values()
, para conocer los valores de un diccionario; ylen()
, para averiguar la longitud de un diccionario:
print(mi_dicc.keys()) # dict_keys([23, 'Nombre', 'Equipo', 'Anillos'])
print(mi_dicc.values()) # dict_values(['Jordan', 'Michael', 'Chicago', {'Temporadas': (1991, 1992, 1993, 1996, 1997, 1998)}])
print(len(mi_dicc)) # 4
Código fuente
El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/09/
del
repositorio.