"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Una forma elegante y sencilla de utilizar listas de Python: listas por comprensión

Una forma elegante y sencilla de utilizar listas de Python: listas por comprensión

Publicado el 2024-11-08
Navegar:641

An elegant and simple way to use Python Lists: List Comprehensions

Podrías pensar que Comprensión de listas es un concepto avanzado. Sin embargo, puede simplificar su código con solo una línea en situaciones complicadas. Es hora de entender cómo funciona. Lo explicaré a nivel principiante con ejemplos.

¿Qué es exactamente la comprensión de listas?

A menudo ves la notación l2 = [x 1 para x en l]. Se dice que es lo mismo que esto:

l2 = []
for x in l:
    x = x   1
l2.append(x)

Para ambos casos, si comenzamos con l = [10, 100, 1000], l2 será:

[11, 101, 1001]

La primera sintaxis es lo que llamamos lista de comprensión.
Quizás prefieras el bucle for habitual, pero al final de este artículo, te prometo que estarás seguro al utilizar la comprensión de listas.

Además, consultemos la definición oficial detallada de la documentación https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

Las listas por comprensión proporcionan una forma concisa de crear listas. Las aplicaciones comunes son hacer nuevas listas donde cada elemento es el resultado de algunas operaciones aplicadas a cada miembro de otra secuencia o iterable, o crear una subsecuencia de aquellos elementos que satisfacen una determinada condición.

Vamos a desglosarlo más. La comprensión de listas es simplemente una forma diferente de escribir código que es más corto y más fácil de crear una nueva lista. El resultado de la comprensión de listas es una lista, por eso la asignamos a una lista.
Repasemos la segunda parte de la definición, que analiza ejemplos comunes. Esto debe hacerse usando ejemplos específicos.
1.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
uppercase_fast_foods = [food.upper() for food in fast_foods]

Después de esto, las comidas_rápidas_en mayúsculas serán:

['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']

Usamos la función Upper() para cambiar cada alimento de nuestra lista a mayúsculas. Como resultado, ahora todos los elementos están en mayúsculas. Así es como 'hacemos nuevas listas donde cada elemento es el resultado de algunas operaciones aplicadas a cada miembro de otra secuencia o iterable'.
2.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
foods_with_space = [food for food in fast_foods if " " in food]

Después de esto, alimentos_con_espacio serán:

['Fried Chicken', 'Hot Dog']

La línea de código anterior recupera los elementos de la lista que contienen un carácter de espacio en blanco. Así es como 'hacemos nuevas listas donde cada elemento es el resultado de algunas operaciones aplicadas a cada miembro de otra secuencia o iterable'.

Ejemplos de comprensión de listas

He usado listas por comprensión en muchos problemas porque cada vez que encontraba demasiados bucles for, pensaba: "No hay problema, simplemente los simplificaré". Resulta que es la misma lógica, ¡solo que más limpia! ?
Sin más preámbulos, estos son algunos de los ejemplos más relevantes que se me han ocurrido:
1. Modificar cada elemento de la lista

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food   ' - 2024' for food in foods]
print(foods_with_version)

Producción:

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']

En este ejemplo, tomamos una lista de alimentos y agregamos '- 2024' a cada uno. Usamos la comprensión de listas para crear rápidamente una nueva lista con estos nombres actualizados.
2. Hacer una sublista a partir de una lista basada en una condición

foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"]
long_foods = [food for food in foods if len(food) > 7]
print(long_foods)

Producción:

['Fried Chicken']`

En este ejemplo, creamos una lista de alimentos y filtramos los que tienen más de 7 caracteres. Usamos la comprensión de listas con una condición para lograr esto.
3. Utilice la función de rango con comprensión de lista para crear una lista

x = [i for i in range(10, 20, 2)]
print(x)

Producción:

[10, 12, 14, 16, 18]

En este ejemplo, creamos una lista de números que van del 10 al 18 usando la comprensión de listas con range().
4. Aplicar comprensión de lista a una cadena

input_string = "hello world"
marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string]
print(marked_vowels)

Producción:

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']

En este último ejemplo, tomamos una cadena y marcamos sus vocales con un asterisco (*). Usamos la comprensión de listas para crear una nueva lista basada en la cadena original.

Conclusión

A lo largo de este artículo, he cubierto todos los conocimientos básicos sobre la comprensión de listas, desde la definición hasta varios ejemplos que las explican con más detalle. ¡Espero que todo esté claro y que te sientas más motivado para incorporar listas por comprensión en tu código Python de ahora en adelante!

Declaración de liberación Este artículo se reproduce en: https://dev.to/mariem_sghaier/an-elegant-and-simple-way-to-use-python-lists-list-comprehensions-584j?1 Si hay alguna infracción, comuníquese con Study_golang @163.com eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3