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.
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'.
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.
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!
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