Comprensiones en Python

Publicado: jue, 29 de junio de 2023

Python Comprehensions
Python Comprehensions

Las comprensiones en Python son una forma concisa de crear listas, conjuntos y diccionarios. Nos permiten construir nuevas secuencias a partir de secuencias existentes de manera clara y eficiente.

Comprensiones de Listas

Una comprensión de listas es una manera de construir una nueva lista aplicando una expresión a cada elemento de una secuencia existente.

Ejemplo Básico

# Crear una lista de números al cuadrado
numeros = [1, 2, 3, 4, 5]
cuadrados = [n**2 for n in numeros]
print(cuadrados)

Resultado:

[1, 4, 9, 16, 25]

Con Condición

Podemos añadir una condición para incluir solo los elementos que cumplan ciertos criterios.

# Crear una lista de números pares al cuadrado
pares_cuadrados = [n**2 for n in numeros if n % 2 == 0]
print(pares_cuadrados)

Resultado:

[4, 16]

Comprensiones de Diccionarios

Las comprensiones de diccionarios permiten crear diccionarios de manera concisa.

Ejemplo Básico

# Crear un diccionario con números y sus cuadrados
cuadrados_dict = {n: n**2 for n in numeros}
print(cuadrados_dict)

Resultado:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Con Condición

Podemos usar una condición para incluir solo ciertos pares clave-valor.

# Crear un diccionario con números pares y sus cuadrados
pares_cuadrados_dict = {n: n**2 for n in numeros if n % 2 == 0}
print(pares_cuadrados_dict)

Resultado:

{2: 4, 4: 16}

Comprensiones de Conjuntos

Las comprensiones de conjuntos son similares a las de listas y diccionarios, pero generan conjuntos.

Ejemplo Básico

# Crear un conjunto con números al cuadrado
cuadrados_set = {n**2 for n in numeros}
print(cuadrados_set)

Resultado:

{1, 4, 9, 16, 25}

Con Condición

Al igual que con las listas y los diccionarios, podemos usar condiciones en las comprensiones de conjuntos.

# Crear un conjunto con números pares al cuadrado
pares_cuadrados_set = {n**2 for n in numeros if n % 2 == 0}
print(pares_cuadrados_set)

Resultado:

{16, 4}

Comprensiones de Tuplas

A diferencia de listas, diccionarios y conjuntos, Python no tiene una sintaxis específica para comprensiones de tuplas. Sin embargo, podemos usar el generador de expresiones (que se parece a las comprensiones) y convertirlo a una tupla.

Ejemplo con Generador de Expresiones

# Crear una tupla con números al cuadrado
cuadrados_tuple = tuple(n**2 for n in numeros)
print(cuadrados_tuple)

Resultado:

(1, 4, 9, 16, 25)

Con Condición

También podemos añadir condiciones a los generadores de expresiones para crear tuplas filtradas.

# Crear una tupla con números pares al cuadrado
pares_cuadrados_tuple = tuple(n**2 for n in numeros if n % 2 == 0)
print(pares_cuadrados_tuple)

Resultado:

(4, 16)

Las comprensiones son una característica poderosa de Python que facilita la escritura de código más limpio y eficiente. Ya sea que estés trabajando con listas, diccionarios, conjuntos o tuplas, las comprensiones y los generadores de expresiones ofrecen una forma clara y concisa de transformar y filtrar secuencias. Esto no solo mejora la legibilidad del código, sino que también puede ser más eficiente en términos de rendimiento.



Quieres apoyarme para seguir creando contenido? Puedes invitarme un café (o una cerveza) en mi página de Ko-Fi, es totalmente voluntario y tu ayuda me serviría de mucho para seguir haciendo lo que amo.