Python dictionary: ¿cómo funcionan las listas asociativas?

En el lenguaje de programación web llamado Python, el dictionary es un tipo de dato importante que se puede utilizar para relacionar términos con sus significados. Mediante el uso de pares de claves y valores, se pueden crear muchas tablas, colecciones de datos o inventarios. Python dictionary también puede ser utilizado junto a bucles for de Python, sentencias if else de Python y bucles while de Python.

API gratuita de IONOS

La nueva API soporta operaciones a través de las cuales puedes recuperar o actualizar los datos de tus dominios, DNS y SSL.

Registros DNS
Administración SSL
Documentación API

¿Qué es un Python dictionary?

Un Python dictionary es un tipo de dato que relaciona términos y significados. En esta estructura, las claves (keys) y los valores (values) pueden vincularse, almacenarse y recuperarse posteriormente. Mientras que la traducción “lista asociativa”, que a veces se utiliza en español para hacer referencia a un Python dictionary, es bastante poco práctica, el simple término “diccionario” va por buen camino. Al igual que en un diccionario en el que un término se asocia con su correspondiente explicación o traducción, un Python dictionary también crea una tabla asociativa que no puede contener duplicados. Por lo tanto, cada clave aparece una sola vez.

Python dictionary: estructura y consulta

Un Python dictionary siempre se escribe entre corchetes. La clave y su correspondiente valor se unen mediante dos puntos y los pares resultantes se separan mediante comas. Un Python dictionary teóricamente puede contener un número ilimitado de pares clave-valor. La clave también se escribe entre comillas. Probablemente ya conozcas la sintaxis gracias a algún tutorial de Python. Un ejemplo puede ser:

ages = {'Jim': 42, 'Jack': 13, 'John': 69}

Para leer un Python dictionary hay que introducir la clave correcta entre corchetes. Esta es su notación en el código:

age_jim = ages['Jim']
assert age_jim == 42

Ejemplo de un Python dictionary

La estructura y el funcionamiento de un Python dictionary pueden explicarse bien con un simple ejemplo. En la siguiente estructura, los países y las capitales deben ser asignadas y emitidas. El Python dictionary utiliza el siguiente código:

capitals = { "UK": "London", "FR": "Paris", "DE": "Berlin" }

Si ahora deseas consultar un elemento determinado, utiliza los corchetes:

capitals["FR"]
assert capitals["FR"] == 'Paris'

El resultado que emitiría en este caso sería el valor perteneciente a la clave "FR", es decir, "Paris".

Estructura alternativa

Como alternativa, también puedes crear un Python dictionary sin contenido y luego llenarlo. Para ello, siempre se crea primero un Python dictionary vacío, el cual tiene el siguiente aspecto:

capitals = { }

Ahora llena el dictionary:

capitals["UK"] = "London"
capitals["FR"] = "Paris"
capitals["DE"] = "Berlin"

Si ahora utilizas el comando print para emitir la variable “capitals” el Python dictionary, obtendrás como resultado lo siguiente:

{ "UK": "London", "FR": "Paris", "DE": "Berlin" }

Modificar el Python dictionary posteriormente

También puedes modificar tu Python dictionary a posteriori. Por ejemplo, para añadir (en inglés “append”) pares clave-valor, utiliza el siguiente código:

capitals[ "IT" ] = "Roma"
print(capitals)

Ahora el contenido es el siguiente:

{ "UK": "London", "FR": "Paris", "DE": "Berlin", "IT": "Roma" }

Si quieres cambiar un valor dentro de un par clave-valor, utiliza el siguiente código:

capitals = { "UK": "London", "FR": "Paris", "DE": "Berlin", "IT": "???" }
assert capitals["IT"] == "???"
capitals["IT"] = "Roma"
assert capitals["IT"] == "Roma"

A continuación, emitirá de nuevo el contenido:

{ "UK": "London", "FR": "Paris", "DE": "Berlin", "IT": "Roma" }

Eliminar los pares clave-valor del Python dictionary

Existen tres formas de eliminar a posteriori un par clave-valor del Python dictionary: del, pop y popitem.

Eliminar con del

Para mostrar el método del se puede usar un sencillo inventario. Por ejemplo, una panadería ofrece 100 panecillos, 25 barras de pan y 20 croissants desde que abre sus puertas. En ese caso, el Python dictionary correspondiente tendría el siguiente aspecto:

stock = { "rolls": 100, "breads": 25, "croissants": 20 }

Si la panadería vende ahora todos sus croissants y quiere borrarlos de su listado, hay que utilizar el siguiente comando del para hacerlo:

del stock["croissants"]
print(stock)

Con este método, sin embargo, debes asegurarte de utilizar siempre el comando “del” junto con un par clave-valor. En caso contrario, se borrará todo el Python dictionary. Este es un problema en Python que ocurre con relativa frecuencia.

Eliminar con pop

La segunda forma de eliminar los pares clave-valor de un Python dictionary es mediante “pop”. Este guarda el valor eliminado en una nueva variable. Funciona de la siguiente manera:

marbles = { "red": 13, "green": 19, "blue": 7, "yellow": 21}
red_marbles = marbles.pop("red")
print(f"We've removed {red_marbles} red marbles.")
print(f"Remaining marbles are: {marbles}")

El resultado emitido en pantalla es el siguiente:

We've removed 13 red marbles.
Remaining marbles are: {'green': 19, 'blue': 7, 'yellow': 21}

Eliminar con popitem

Utiliza “popitem” para eliminar el último par clave-valor de tu Python dictionary. Este es el código correspondiente:

last = marbles.popitem()
print(last)
print(marbles)

El resultado emitido en pantalla será el siguiente:

('yellow', 21)
{ "Uno": 1, "Dos": 2, "Tres": 3 }

('yellow', 21)

{ "Uno": 1, "Dos": 2, "Tres": 3 }

Otros métodos para el Python dictionary

Hay otros métodos que funcionan con un Python dictionary. A continuación, una lista de las opciones más relevantes:

Método Descripción
Clear Con clear, eliminas todos los pares clave-valor del Python dictionary.
Copy copy crea una copia del dictionary en tu base de datos.
Get Con get, el valor se determina al introducir la clave.
Keys Con keys consultas las claves de tu dictionary.
Update Con update amplias un Python dictionary con ayuda de otro. Si hay claves duplicadas, se sobrescriben en el diccionario incorporado.
Values Con values consultas todos los valores de tu dictionary.