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)
Con Condición
Podemos añadir una condición para incluir solo los elementos que cumplan ciertos criterios.
numeros = [1, 2, 3, 4, 5]
# Crear una lista de números pares al cuadrado
pares_cuadrados = [n**2 for n in numeros if n % 2 == 0]
print(pares_cuadrados)
Comprensiones de Diccionarios
Las comprensiones de diccionarios permiten crear diccionarios de manera concisa.
Ejemplo Básico
numeros = [1, 2, 3, 4, 5]
# Crear un diccionario con números y sus cuadrados
cuadrados_dict = {n: n**2 for n in numeros}
print(cuadrados_dict)
Con Condición
Podemos usar una condición para incluir solo ciertos pares clave-valor.
numeros = [1, 2, 3, 4, 5]
# 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)
Comprensiones de Conjuntos
Las comprensiones de conjuntos son similares a las de listas y diccionarios, pero generan conjuntos.
Ejemplo Básico
numeros = [1, 2, 3, 4, 5]
# Crear un conjunto con números al cuadrado
cuadrados_set = {n**2 for n in numeros}
print(cuadrados_set)
Con Condición
Al igual que con las listas y los diccionarios, podemos usar condiciones en las comprensiones de conjuntos.
numeros = [1, 2, 3, 4, 5]
# 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)
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
numeros = [1, 2, 3, 4, 5]
# Crear una tupla con números al cuadrado
cuadrados_tuple = tuple(n**2 for n in numeros)
print(cuadrados_tuple)
Con Condición
También podemos añadir condiciones a los generadores de expresiones para crear tuplas filtradas.
numeros = [1, 2, 3, 4, 5]
# 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)
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.