Explicación de las listas por comprensión en Python con ejemplos
Las listas por comprensión proporcionan una forma concisa de crear listas en Python. Son más legibles y, a menudo, más eficientes que el uso de bucles tradicionales. En este artículo, se analizará qué son las listas por comprensión, cómo funcionan y se brindarán ejemplos para ilustrar su uso.
¿Qué es una lista por comprensión?
Una comprensión de listas es una forma compacta de procesar todos o parte de los elementos de una colección y devolver una lista con los resultados. La sintaxis de una comprensión de listas es:
[expression for item in iterable if condition]
Aquí, expression
es el elemento actual en la iteración, pero también es el resultado, que puedes manipular antes de que termine como un elemento de lista. iterable
es la colección por la que estás recorriendo el bucle, y condition
es un filtro opcional que solo incluye elementos que satisfacen la condición.
Ejemplos básicos
Creando una lista de cuadrados
Para crear una lista de cuadrados de números del 0 al 9, puedes utilizar una lista por comprensión de la siguiente manera:
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)
Producción:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Filtrar elementos
También puedes agregar una condición para filtrar elementos. Por ejemplo, para obtener solo los números pares de la lista:
even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)
Producción:
[0, 4, 16, 36, 64]
Aplanamiento de una lista de listas
Si tienes una lista de listas y quieres aplanarla, puedes utilizar una comprensión de lista:
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)
Producción:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Ejemplos avanzados
Aplicación de funciones
Puedes aplicar funciones dentro de una comprensión de listas. Por ejemplo, para convertir una lista de cadenas a mayúsculas:
words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)
Producción:
['HELLO', 'WORLD', 'PYTHON']
Comprensiones anidadas
Las listas por comprensión se pueden anidar. Por ejemplo, para crear una lista de tuplas (i, j) donde i y j son elementos de dos listas:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)
Producción:
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]
Conclusión
Las listas por comprensión ofrecen una forma potente y concisa de generar listas en Python. Pueden simplificar el código y hacerlo más legible al reemplazar varias líneas de código de bucle con una sola línea de listas por comprensión. Practique el uso de listas por comprensión para familiarizarse con su sintaxis y capacidades.