Comprensión de Diccionario en Python: Explicado con ejemplos (2023)

/ #Python
Comprensión de Diccionario en Python: Explicado con ejemplos (1)
Andrés Torres
Comprensión de Diccionario en Python: Explicado con ejemplos (2)

Artículo original escrito por Bala Priya C
Artículo original https://www.freecodecamp.org/news/dictionary-comprehension-in-python-explained-with-examples/
Traducido y adaptado por andres-torres

Los diccionarios son poderosas estructuras de datos en Python que almacenan datos como pares de claves, siendo esta representada en la siguiente forma: Clave-Valor. La comprensión de diccionarios (o dict comprehension) puede ser muy útil en crear nuevos diccionarios basados en diccionarios existentes e iterables.

En este tutorial, aprenderemos cómo funcionan los diccionarios por comprensión , añadiendo algunos ejemplos de código.

¿Qué es un diccionario en Python?

Los diccionarios en Python nos permiten almacenar una serie de mapeos entre dos conjuntos de elementos, llamados keys and values (Claves y Valores).

  • Todos los elementos en el diccionario se encuentran encerrados en un par de corchetes {}.
  • Cada elemento en un diccionario contiene una clave y un valor - es decir un par de clave-valor.
  • Cada par de clave-valor es denominado como elemento (item).
  • La ventaja de esto es que puedes acceder a todos los valores almacenados usando simplemente las claves.

He aquí un ejemplo de la estructura pertinente a un diccionario:

mi_diccionario = {"key1":<value1>,"key2":<value2>,"key3":<value3>,"key4":<value4>}

En el ejemplo anterior,

  • El diccionario mi_diccionario contiene cuatro pares de clave-valor, es decir, cuatro elementos.
  • "key1" hasta "key4" son las cuatro claves.
  • Puedes usar mi_diccionario["key1"] para acceder a <value1>, y mi_diccionario["key2"] para acceder a <value2>, y así sucesivamente.

¿Aún tienes dudas?

No te preocupes, agreguemos un ejemplo más práctico.

#Cómo verás, los nombres de los participantes son las Key, mientras que sus respectivos puntajes, son los Value.prueba_deportiva={'Jorge':500,'Diana':600,'Rodrigo':800,'Julia':750,'Li':900}#simplifiquemos la definición de la variablenota=prueba_deportiva#Ahora llamaremos al tercer elemento key-value, es decir, al tercer Itemprint(nota['Rodrigo'])#Hagamos lo mismo con el quinto Itemprint(nota['Li'])# Haz el intento, los resultados serán 800 y 900 respectivamente, es decir, los valores de cada key.

Ahora que sabemos qué es un diccionario en Python, veamos qué es la comprensión de diccionario, Dictionary Comprehension.

Cómo usar la Compresión de diccionario para crear un diccionario de Python a partir de una iteración.

En esta sección, usaremos la compresión de diccionario para crear un diccionario en Python a partir de un elemento iterable, es decir, una lista o tupla.

Podemos crear un nuevo diccionario en Python usando solamente un iterable si elegimos generar ya sea las claves o los valores en marcha.

(Video) 30. Programación en Python | Colecciones | Diccionarios

Cuando elegimos generar los valores en cuestión, podemos usar los ítems en el iterable cómo claves, y viceversa.

La sintaxis general es mostrada abajo. Por favor, observa que los nombres entre <> son marcadores de posición para los nombres actuales de las variables.

<nombre_diccionario> = {<new_key>:<new_value> for <item> in <iterable>}

Analicemos la sintaxis anterior.

  • {} indica que estamos definiendo un diccionario.
  • Para cada elemento del iterable, generamos un par de clave-valor en el diccionario.

▶ Es tiempo de un ejemplo rápido.

Comprensión de diccionario en Python - Ejemplo 1

Supongamos que tenemos una lista de clientes que visitan nuestra tienda, y nos gustaría ofrecer un descuento aleatorio a cada cliente. Nos gustaría además, que el valor de descuento se encuentre entre $1 y $100.

En Python, random.randint(i,j) retorna un valor entre i y j incluyendo ambos extremos.

Por tanto, podemos utilizar la función randint() para generar un descuento entre $1 y $100 para cada cliente en la lista.

El siguiente código nos mostrará cómo podemos crear un diccionario de descuentos a partir de la lista de clientes.

import randomclientes = ["Alex","Bob","Carol","Dave","Flow","Katie","Nate"]diccionario_descuentos = {cliente:random.randint(1,100) for cliente in clientes}print(diccionario_descuentos)#Resultado{'Alex': 16, 'Bob': 26, 'Carol': 83, 'Dave': 21, 'Flow': 38, 'Katie': 47, 'Nate': 89}

El funcionamiento del ejemplo anterior es el siguiente:

  • Una iteración a través de la lista de clientes.
  • Usa el nombre de cada cliente cómo clave.
  • Genera un descuento aleatorio entre $1 y $100 como el valor complementario a cada clave.

Cómo usar la comprensión de diccionarios para crear un diccionario con a partir de dos iterables.

¿Qué pasa si tenemos iterables predefinidos que contengan las claves y valores? Por ejemplo, tenemos dos listas, lista_1 y lista_2 – con lista_1 conteniendo las claves y lista_2 conteniendo los correspondientes valores.

Ahora podemos usar la función zip() para comprimir estas dos listas, llegando a generar los pares de clave-valor (es decir, los elementos de estas dos listas).

Observación: La función zip toma una secuencia de iterables, cómo el argumento y retorna un iterador de tuplas, tal y como se muestra en la imagen siguiente.
Comprensión de Diccionario en Python: Explicado con ejemplos (3)

En la imagen se muestra que la primera tupla es el primer par de clave-valor, la segunda tupla, el segundo par de clave-valor, y en general, la tupla n-i es el n-i par clave-valor.

Cómo ya hemos mencionado anteriormente, los pares de clave-valor son la combinación de las claves y los valores, constituyendo cada par, un elemento en el diccionario.

En este caso, la comprensión del diccionario toma la siguiente forma:

<nombre_diccionario> = {<new_key>:<new_value> for (key,value) in zip(list1,list2)}

Analizar la sintaxis anterior es bastante simple:

  • Las claves y valores están disponibles cómo tuplas, ya que las hemos comprimido juntas usando la función zip().
  • Ahora, ejecutamos el bucle a través del iterador de tuplas para obtener los pares de clave-valor de nuestro diccionario.

▶ Es hora de otros ejemplos.

(Video) Tutorial Python 25: Comprensión de Listas

Comprensión de diccionario en Python - Ejemplo 2

Esta vez, supongamos que nos gustaría crear un diccionario que contenga información sobre el clima semanal en nuestra ciudad. Los días (en inglés) serían las claves, mientras que las temperaturas (en grados Celsius) sus correspondientes valores.

Tenemos los días y su temperatura en dos listas, tal y como se muestra a continuación.

dias =["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]temp = [30.5,32.6,31.8,33.4,29.8,30.2,29.9]

¿Cómo usamos la comprensión de diccionario con estas dos listas, para crear un diccionario de temperaturas semanales? Procedamos:

# Creando un diccionario de temperaturas semanales# A partir de dos listas aisladastemp_semanal = {dias:temp for (dias,temp) in zip(dias,temp)}print(temp_semanal)#Resultado{'Sunday': 30.5, 'Monday': 32.6, 'Tuesday': 31.8, 'Wednesday': 33.4, 'Thursday': 29.8, 'Friday': 30.2, 'Saturday': 29.9}

En el ejemplo anterior usamos la función zip() para comprimir las dos listas. Ahora podemos buscar en el diccionario valores a través de las claves:

temp_semanal["Thursday"]# Resultado29.8

Cómo usar el método de items() en un diccionario de Python.

Anteriormente, hemos visto cómo usar las claves para acceder a los valores. ¿Pero cómo podemos acceder a todos los pares de clave-valor en un diccionario?

Para hacer esto, hacemos uso del método items() en el diccionario para obtener todos los pares de clave-valor.

diccionario_descuentos.items()# Outputdict_items([('Alex', 16), ('Bob', 26), ('Carol', 83), ('Dave', 21), ('Flow', 38), ('Katie', 47), ('Nate', 89)])

Cómo usar la comprensión de diccionarios para crear un diccionario de Python a partir de un diccionario existente.

Ahora miremos el caso en el que ya tengamos un diccionario en Python. 📚

Sin embargo, nos gustaría crear un nuevo diccionario que contenga solo los elementos de nuestro diccionario existente, que satisfagan una condición particular.

<nombre_diccionario> = {<new_key>:<new_value> for (key,value) in <dict>.items() if <condition>}

Expliquemos la sintaxis. Usamos el método items() y obtenemos todos los pares de clave-valor en el diccionario existente.

  • Accedemos al primer ítem del diccionario, verificando si nuestra condición condition es evaluada cómo verdadera True.
  • Si la condición es True, añadimos el primer ítem a nuestro diccionario.
  • Por último solo queda repetir estos pasos para todos los elementos de nuestro diccionario existente de forma sucesiva.

▶ Veamos un ejemplo.

Comprensión de diccionario en Python - Ejemplo 3

Recordemos nuestro anterior ejemplo del diccionario de descuentos

{'Alex': 16, 'Bob': 26, 'Carol': 83, 'Dave': 21, 'Flow': 38, 'Katie': 47, 'Nate': 89}

Vemos que alguna parte de la clientela tuvo suerte en obtener un descuento mayor que otros. Veamos detrás de esta disparidad y hagamos a toda nuestra clientela feliz. 😀

Nos gustaría ofrecer a las personas que han tenido menos de $30 de descuento, un 10% de descuento en su próxima compra. ✨

En este caso, estamos creando un nuevo diccionario clientela_10 a partir de nuestro diccionario_descuentos.

(Video) COMPRENSIÓN (Parte 2) - ... EN DICCIONARIOS

clientela_10 = {cliente:descuento for (cliente, descuento) in diccionario_descuentos.items() if descuento<30}print(clientela_10)# Output{'Alex': 16, 'Bob': 26, 'Dave': 21}

El código de arriba explica lo siguiente:

  • Por cada uno de los elementos en nuestrodiccionario_descuentos, se evalúa el valor del descuento.
  • Si el descuento aplicado fue menor a $30, se añade el correspondiente descuento en conjunción con nuestro nuevo diccionario clientela_10.

Son Alex, Bob, y Dave quienes obtuvieron menos de $30 en descuentos, quienes han sido añadidos al nuevo diccionario.

Conclusión

Resumamos lo aprendido en este tutorial. Hemos visto cómo usar la comprensión de diccionario, creando nuevos diccionarios en Python. Siendo a partir de:

  • un solo iterable,
  • dos iterables, y
  • un diccionario existente usando condicionales para filtrar a través de los elementos.

Muchas Gracias por Leer y Feliz Aprendizaje.🎉

ANUNCIO

ANUNCIO

ANUNCIO

ANUNCIO

ANUNCIO

(Video) ¿Cómo funciona la compresión de archivos? | Codificación Huffman

ANUNCIO

ANUNCIO

ANUNCIO

Comprensión de Diccionario en Python: Explicado con ejemplos (4)
Andrés Torres

Economist and data scientist with many years of professional experience. I´m also a tech journalist. When not writing, I'm a Proofreader at FCC and a graduate student.

Si este artículo te fue útil, .

Aprende a codificar de forma gratuita. El plan de estudios de código abierto de freeCodeCamp ha ayudado a más de 40,000 personas a obtener trabajos como desarrolladores. Empezar

ANUNCIO

(Video) 📖 ¿Qué es un DICCIONARIO en PYTHON? - Descubre los FUNDAMENTOS y MÉTODOS - Ejercicios - #05

Videos

1. Python - Nivel 30 - Reto 1 - Listas por comprensión - Definición
(Manuel González)
2. 14.- Curso Python - List Comprehension
(codigofacilito)
3. Diccionarios en #Python
(codigofacilito)
4. 🐍🚀 Python | 😎 Optimiza tus aplicaciones con listas y diccionarios por comprensión
(Pilodev)
5. Curso PYTHON 3 desde CERO, 15/20 - DICCIONARIOS ANIDADOS
(Sergio Infante)
6. 🔺13.2 Ejercicio resuelto con diccionarios - Curso de programación desde cero (con Python)
(Programación Desde Cero)
Top Articles
Latest Posts
Article information

Author: Prof. Nancy Dach

Last Updated: 01/17/2023

Views: 5763

Rating: 4.7 / 5 (57 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Prof. Nancy Dach

Birthday: 1993-08-23

Address: 569 Waelchi Ports, South Blainebury, LA 11589

Phone: +9958996486049

Job: Sales Manager

Hobby: Web surfing, Scuba diving, Mountaineering, Writing, Sailing, Dance, Blacksmithing

Introduction: My name is Prof. Nancy Dach, I am a lively, joyous, courageous, lovely, tender, charming, open person who loves writing and wants to share my knowledge and understanding with you.