Python » Fundamentos de Python » Diccionarios en Python

Diccionarios en Python

Los diccionarios almacenan pares de objetos clave-valor. En contraste con las listas, los diccionarios no garantizan que se mantenga el orden en que sus objetos han sido almacenados. Además, en un diccionario el acceso a un objeto se realiza indicando la clave de ese objeto. Este es otro elemento diferenciador entre diccionarios y listas, donde el acceso a los objetos se realiza indicando la posición que ocupan. Los diccionarios utilizan llaves ({}) para encerrar a sus elementos, y dos puntos (:) para indicar las claves y sus valores asociados.

>>> diccionario = {'clave1':'valor1', 'clave2':'valor2'}
>>> type(diccionario)
<class 'dict'>

Tipos de clave-valor permitidos

Los diccionarios pueden tratar con prácticamente cualquier tipo de dato y existen muy pocas restricciones en cuanto a las claves y valores que se pueden utilizar. Estas restricciones son las siguientes:

  • Claves: no puede haber claves duplicadas y éstas tienen que ser objetos inmutables.
  • Valores: no existe ninguna restricción en cuanto a los tipos de datos.

En el siguiente ejemplo vemos un diccionario con claves de distinto tipo: string, número entero, número en coma flotante, e incluso booleano. Así mismo el valor que se toma para las claves repetidas es el último que se ha definido. Es por ello que el valor asociado a la clave “2” es False.

>>> diccionario = {'clave1':'valor1', 2:2.5, 3.1:3, True:['a','b','c'], 2:False} 
>>> diccionario
{'clave1': 'valor1', 2: False, 3.1: 3, True: ['a', 'b', 'c']}

Acceder y modificar los objetos de un diccionario

Para acceder a un objeto determinado de un diccionario tenemos que indicar entre corchetes el nombre de su clave. De modo muy similar podemos modificar el valor de una clave asignándole un nuevo valor mediante el signo igual (=). Además, también podemos añadir un nuevo par clave-valor indicando simplemente el nombre de la clave a añadir. Estas operaciones se ilustran en el siguiente bloque de código donde: i) accedemos al precio de las manzanas, ii) modificamos el precio de las manzanas y iii) añadimos el precio del agua al diccionario de precios.

>>> precios = {'pasta':0.9, 'patatas':2.55, 'manzanas':0.35}
>>> precios['manzanas']
0.35
>>> precios['manzanas'] = 0.29
>>> precios
{'pasta': 0.9, 'patatas': 2.55, 'manzanas': 0.29}
>>> precios['agua'] = 1.47
>>> precios
{'pasta': 0.9, 'patatas': 2.55, 'manzanas': 0.29, 'agua': 1.47}

Métodos comunes de los diccionarios

En este apartado vemos algunos de los métodos más útiles para manipular diccionarios.

  • d.keys(): devuelve una lista que contiene las llaves del diccionario.
>>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> list(capitales.keys())
['Inglaterra', 'Francia', 'Italia']
  • d.values(): devuelve una lista que contiene los valores del diccionario.
>>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> list(capitales.values())
['Londres', 'Paris', 'Roma']
  • d.items(): devuelve una lista de tuplas con los pares clave-valor del diccionario.
>>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> list(capitales.items())
[('Inglaterra', 'Londres'), ('Francia', 'Paris'), ('Italia', 'Roma')]
  • d.clear(): elimina todos los elementos del diccionario.
>>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> capitales.clear()
>>> capitales
{}
  • d.get(clave, valor_por_defecto): devuelve el valor de la clave indicada en caso que ésta exista. En caso contrario devuelve el valor por defecto.
>>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> capitales.get('Alemania', 'Desconocida')
'Desconocida'
  • d.pop(clave, valor_por_defecto): elimina la clave indicada y devuelve su valor. En caso que el diccionario no contenga la clave especificada, retorna el valor por defecto.
>>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> capitales.pop('Francia')
'Paris'
>>> capitales
{'Inglaterra': 'Londres', 'Italia': 'Roma'}
>>> capitales.pop('Alemania', 'Berlin')
'Berlin'

Operaciones con el intérprete

En el caso de los diccionarios, el interprete nos proporciona la función len(). Esta función nos retorna el número de pares clave-valor de un diccionario.

 >>> capitales = {'Inglaterra':'Londres', 'Francia':'Paris', 'Italia':'Roma'}
>>> len(capitales)
3
Foto del autor

Albert Brugués

Soy doctor en informática médica y un apasionado de la tecnología y las nuevas oportunidades que brinda. Más en particular me encanta la inteligencia artificial y el desarrollo web. En este blog pretendo compartir los conocimientos de Python que he ido adquiriendo a lo largo de los años.

Deja un comentario