Diccionarios¶
¿Que es un diccionario?¶
Supongamos que tenemos una lista con las temperaturas medias de los primeros meses del año:
>>> temperaturas = [12.5, 10.2, 13.4, 16.4, 19.1, 22.7]
Obtenemos la temperatura de enero con:
>>> print(temperaturas[0])
12.5
¿Podríamos usar un texto como índice?
print( temperaturas["enero"] )
Con una lista no se puede hacer eso. Pero podemos utilizar un diccionario en su lugar.
Los diccionarios son colecciones en las que se accede a cada elemento mediante
una clave, en lugar de usar un número índice. Los elementos se almacenan
en formato clave:valor:
>>> temperaturas = {"enero" : 12.5,
... "febrero": 10.2,
... "marzo" : 13.4,
... "abril" : 16.4,
... "mayo" : 19.1,
... "junio" : 22.7,
... }
>>> temperaturas["enero"]
12.5
Los diccionarios se escriben de la siguiente manera:
- todo el conjunto se delimita entre llaves, en lugar de entre corchetes
- los elementos se separan por comas, como hacemos en listas y tuplas
- cada elemento se escribe en formato
clave:valor
Un ejemplo¶
| Listin.py | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Al ejecutarse, muestra algo así como:
Listín telefónico
Introduzca nombre de persona. En blanco para salir: Ana
Ana: 2743
Introduzca nombre de persona. En blanco para salir: Pedro
Teléfono no encontrado
Introduzca nombre de persona. En blanco para salir:
Adios
Estructuras¶
Los elementos pueden ser de diferente tipo, lo que permite crear estructuras de datos complejas:
>>> coche = {
... "marca": "Renault",
... "modelo": "Clio",
... "año": 2020
... }
>>> coche
{'marca': 'Renault', 'modelo': 'Clio', 'año': 2020}
>>> coche["marca"]
'Renault'
Orden de los elementos¶
Las listas y tuplas mantienen sus elementos en el mismo orden en que se incorporan a la colección. Hasta la versión 3.6 de Python, los diccionarios se almacenaban con los elementos desordenados, ya que no es necesario conocer su posición, dado que no accedemos a cada elemento por un número índice. En las versiones actuales de Python, los elementos mantienen su orden.
Tamaño de un diccionarios¶
El número de elementos se obtiene con la función len():
>>> print(len(coche))
3
Colecciones anidadas¶
Los elementos de un diccionario pueden ser colecciones de datos. Por ejemplo, una lista
>>> coche = {
... "marca": "Renault",
... "modelo": "Clio",
... "año": 2014,
... "colores": ["rojo", "blanco", "azul"]
... }
>>> coche["colores"][0]
'rojo'
Acceso a elementos¶
En principio, se accede a un elemento poniendo la clave entre corchetes:
>>> persona = dict(nombre = "Juan", edad = 36, pais = "Mexico")
>>> persona["nombre"]
'Juan'
... aunque el método get() hace lo mismo:
x = persona.get("nombre")
Añadir elementos¶
Añadir un elemento es tan fácil como hacer una asignación. Si la clave no existe, se añade. Si ya existe, se le asigna el nuevo valor
>>> telefonos = {
... "Ana" : 2743,
... "Juan" : 7145,
... "Andrés" : 2812
... }
>>> telefonos
{'Ana': 2743, 'Juan': 7145, 'Andrés': 2812}
>>> telefonos["Victor"] = 3343
>>> telefonos
{'Ana': 2743, 'Juan': 7145, 'Andrés': 2812, 'Victor': 3343}