Python logo - Curso de Python desde cero

Curso de Python:
Los diccionarios

Vemos las principales características de esta estructura de datos en Python

¡Saludos y bienvenidos a otro capítulo de este curso de programación en Python! En entregas anteriores, exploramos las listas y las tuplas, dos estructuras de datos cruciales. En este artículo, nos sumergiremos en otro concepto igualmente esencial: los diccionarios. Comencemos explorando qué son y cuáles son sus características fundamentales.

¿Qué son los diccionarios?

Los diccionarios en Python son estructuras de datos similares a las listas y las tuplas, pero con una característica distintiva: la capacidad de almacenar datos mediante una asociación de tipo clave : valor.

Para aquellos que no tienen experiencia en otros lenguajes de programación, este concepto puede resultar nuevo. Sin embargo, para quienes están familiarizados con lenguajes como PHP o Java, la noción de «clave-valor» es muy conocida. Por ejemplo, en PHP, un diccionario se asemeja a un «array asociativo», mientras que en Java, se asemeja a una «tabla hash» o «hashtable». En esencia, se trata de almacenar datos con una estructura que asocia claves únicas a valores.

La clave-valor implica que a cada valor almacenado en un diccionario se le asigna una clave única.

Un aspecto destacable de los diccionarios en Python es su versatilidad. Pueden almacenar cualquier tipo de dato: números enteros, cadenas de texto, números decimales e incluso otras estructuras de datos como listas, tuplas o incluso diccionarios adicionales.

Además, es importante destacar que el orden en que se almacenan los valores en un diccionario no tiene relevancia, dado que cada valor se identifica mediante una clave única.

Sintaxis de un diccionario en Python

La sintaxis de un diccionario en Python es sencilla. Primero, elige un nombre para tu diccionario siguiendo las reglas de nombrado que aplican a las variables, listas y tuplas. A continuación, utiliza llaves {} para delimitar el diccionario. Mientras que las listas se definen con paréntesis y las tuplas con corchetes, los diccionarios se enmarcan entre llaves {}.

mi_diccionario = {}

Y ahora, dentro de las llaves tenemos que comenzar con la estructura de clave:valor. La clave que se va a asignar a cada valor puede ser de cualquier tipo: puede ser un texto, puede ser un valor numérico, puede ser incluso una tupla.

En este primer diccionario mis claves van a ser de tipo texto, luego tendrán que ir entrecomilladas. Imaginaos que queremos crear un diccionario que almacene países y capitales, un ejemplo clásico para utilizar un diccionario ya que a cada país clave le podemos asignar un valor que sería la capital.

Dentro de las llaves, definimos la estructura clave:valor. Las claves pueden ser de cualquier tipo, ya sea texto, valores numéricos o incluso tuplas. En este primer ejemplo, utilizaremos claves de tipo texto, las cuales deben estar encerradas entre comillas. Supongamos que deseamos crear un diccionario que almacene países y sus capitales:

mi_diccionario = {"España":"Madrid", "Francia":"París", "Alemania":"Berlín"}

Esta es la sintaxis básica de un diccionario. Hemos creado un diccionario con claves de texto y valores asociados que representan las capitales.

Acceder a Elementos del Diccionario

Para acceder a un elemento específico dentro del diccionario, simplemente debemos proporcionar la clave correspondiente. Por ejemplo, si deseamos conocer la capital de Francia, podemos utilizar la siguiente sintaxis:

print(mi_diccionario["Francia"]) 
# Esto imprimirá "París"

Al hacerlo, obtenemos el valor asociado a la clave «Francia», que es «París».

Si deseamos imprimir todo el diccionario, basta con utilizar el nombre del diccionario:

print(mi_diccionario)  
# Esto imprimirá todo el diccionario {'España': 'Madrid', 'Francia': 'París', 'Alemania': 'Berlín'}

El resultado será la representación completa del diccionario con todas sus claves y valores.

A partir de aquí, hay una amplia gama de operaciones que se pueden realizar con un diccionario, como agregar más elementos a uno ya existente.

Añadir elementos a un diccionario

Agregar elementos a un diccionario es un proceso sencillo. Simplemente especificamos el nombre del diccionario, seguido de la clave que queremos asignar al nuevo valor. Por ejemplo, creemos una clave que corresponda a Italia, utilizando comillas para encerrar el valor, que en este caso será «Lisboa». Aunque deliberadamente cometí un error, ya que Lisboa es la capital de Portugal y no de Italia.

mi_diccionario["Italia"] = "Lisboa"
print(mi_diccionario)
#  {'España': 'Madrid', 'Francia': 'París', 'Alemania': 'Berlín', 'Italia': 'Lisboa'}

Al ejecutar este código, el diccionario imprimirá un elemento adicional, «Italia», aunque el valor asociado es incorrecto.

Modificar el valor de elementos ya asignados

Para modificar el valor de una clave previamente asignada, simplemente debemos sobrescribirla. Por ejemplo, si queremos cambiar el valor de «Italia» de «Lisboa» a «Roma», simplemente realizamos la siguiente operación:

mi_diccionario["Italia"] = "Roma"
print(mi_diccionario)
#  {'España': 'Madrid', 'Francia': 'París', 'Alemania': 'Berlín', 'Italia': 'Roma'}

En los diccionarios de Python, cuando asignamos varios valores a la misma clave, estos valores se sobrescriben. Nunca encontraremos dentro de un diccionario dos claves iguales.

del – Eliminar elementos del diccionario

Si deseamos eliminar un elemento específico de nuestro diccionario, como por ejemplo «Alemania: Berlín», podemos utilizar el método del. Simplemente proporcionamos el nombre del diccionario seguido de la clave cuyo valor queremos eliminar.

del mi_diccionario["Alemania"]
print(mi_diccionario)
#  {'España': 'Madrid', 'Francia': 'París', 'Italia': 'Roma'}

El resultado mostrará que el diccionario ya no contiene el elemento «Alemania».

Diccionarios con diferentes tipos de valores

Los diccionarios en Python son flexibles y pueden contener diferentes tipos de datos como valores. Por ejemplo, podemos crear un diccionario en el que el primer elemento sea una pareja de cadenas de texto, seguido de una clave numérica con un valor de tipo cadena, y viceversa, una clave de texto seguida de un valor numérico, y cualquier otra combinación que se nos ocurra.

mi_diccionario_2 = {"Alemania": "Berlín", 25: "Ordenador", "Portátil": 73}
print(mi_diccionario_2)
#  {'Alemania': 'Berlín', 25: 'Ordenador', 'Portátil': 73}

Este diccionario contiene una variedad de tipos de datos como claves y valores. También es posible utilizar una tupla para asignar las claves a los valores en un diccionario, como se mencionó previamente en el artículo sobre las tuplas.

Utilizar una Tupla para asignar los elementos de un diccionario

En esta lección, exploraremos cómo podemos utilizar una tupla para asignar elementos a un diccionario en Python. Comencemos por declarar una tupla a la que llamaremos mi_tupla, y en ella, incluiremos una serie de valores de texto.

mi_tupla = ["Alemania", "España", "Francia"]

Ya hemos creado una tupla. Ahora, declararemos un diccionario llamado mi_diccionario y utilizaremos la tupla para asignar claves a cada uno de los valores. Realizamos esto de la siguiente manera:

mi_diccionario = {mi_tupla[0]: "Berlín", mi_tupla[1]: "Madrid", mi_tupla[2]: "París"}

En el código anterior, aprovechamos la indexación de la tupla para asignar los elementos como claves en el diccionario junto con sus respectivos valores. Si imprimimos este diccionario, veremos las parejas clave-valor:

print(mi_diccionario)
{'Alemania': 'Berlín', 'España': 'Madrid', 'Francia': 'París'}

Para acceder a un elemento específico, puedes utilizar tanto el número de índice de la tupla como la clave asociada:

print(mi_diccionario[mi_tupla[1]])  # Acceder mediante el índice
# Madrid

print(mi_diccionario["Alemania"])    # Acceder mediante la clave
# Berlín

Almacenar una Tupla como Valor en un Diccionario

Ahora, veamos cómo almacenar una tupla completa como un valor en un diccionario. Para este propósito, declararemos un nuevo diccionario llamado mi_dicc:

mi_dicc = {23 : "Jordan", "Nombre" : "Michael", "Equipo" : "Chicago", "Anillos":[1991, 1992, 1993, 1996, 1997, 1998]}

En este diccionario, hemos asignado la clave «Anillos» a una tupla que contiene los años en los que el deportista ganó anillos del campeonato de la NBA:

print(mi_dicc)
#  {23: 'Jordan', 'Nombre': 'Michael', 'Equipo': 'Chicago', 'Anillos': [1991, 1992, 1993, 1996, 1997, 1998]}

Si accedemos a la clave con una tupla como valor, nos devolverá la tupla completa como resultado:

print(mi_dicc["Anillos"])
#  [1991, 1992, 1993, 1996, 1997, 1998]

Guardar un diccionario dentro de otro diccionario

Llevando la complejidad un paso más allá, podemos almacenar un diccionario dentro de otro diccionario. Por ejemplo, podríamos convertir el elemento de los «Anillos» en un diccionario que incluye información adicional:

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]}}

Aquí, hemos anidado un diccionario ({«temporadas»: [1991, 1992, 1993, 1996, 1997, 1998]}) dentro del diccionario principal:

>>> print(mi_dicc["Anillos"])
#  {'temporadas': [1991, 1992, 1993, 1996, 1997, 1998]}

Métodos para utilizar con los diccionarios

Para concluir, aquí hay algunos métodos útiles que se pueden utilizar con diccionarios en Python:

keys()

El método keys() que nos devuelve las claves un diccionario:

print(mi_dicc.keys())
#  dict_keys([23, 'Nombre', 'Equipo', 'Anillos'])

values()

El método values() que nos devuelve los valores de un diccionario:

print(mi_dicc.values())
#  dict_values(['Jordan', 'Michael', 'Chicago', {'temporadas': [1991, 1992, 1993, 1996, 1997, 1998]}])

len()

El método len() que nos devuelve la longitud de un diccionario:

print(len(mi_dicc))
#  4

Con esta comprensión de cómo trabajar con tuplas y diccionarios en Python, tienes una base sólida para aprovechar estas estructuras de datos en tus proyectos. ¡Sigue explorando y experimentando con Python!

Scroll al inicio