Python de comprensión de lista

Funciones y métodos de Python

La comprensión de una lista de Python es una forma de crear una lista basada en una lista existente. Las listas por comprensión se utilizan comúnmente para filtrar elementos de una lista o para cambiar los valores en una lista existente. Las listas por comprensión están encerradas entre corchetes.

Cuando trabaje con listas, es posible que desee crear una lista basada en el contenido de una secuencia existente. Por ejemplo, es posible que desee crear una lista basada en una secuencia de caracteres. O puede querer una lista que multiplique el contenido de otra lista por dos.

Ahí es donde entran en juego las listas por comprensión. Este tutorial explorará, con ejemplos, los conceptos básicos de las listas de Python y cómo use listas por comprensión.




Python Lists: A Refresher

La estructura de datos de la lista le permite almacenar colecciones de elementos en Python. Las listas se usan comúnmente cuando desea trabajar con varios valores que están relacionados de alguna manera.

Por ejemplo, podría usar una lista para almacenar todos los sabores de helado que se venden en una heladería. O puede usar una lista para almacenar una lista de los números de teléfono de los miembros en un club de vinos.

Aquí hay un ejemplo de una lista en Python:

 pizzas = [' Chicken', 'Margherita',' Chicken and Bacon', 'Vegan Special',' Spinach and Brie', 'BBQ Chicken'] 

Ahora que hemos revisado los conceptos básicos de las listas, podemos empezar a hablar sobre cómo usar las listas por comprensión.




Comprensión de listas de Python

La comprensión de una lista de Python crea una nueva lista a partir del contenido de otra lista. Puede utilizar una lista por comprensión para duplicar una lista o modificar el contenido de una lista existente en una nueva lista. O puede transferir el contenido de otro iterable a una lista con una comprensión de la lista.

El 81% de los participantes afirmó que se sentía más seguro acerca de sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy mismo.

El graduado promedio de un bootcamp pasó menos de seis meses en la transición de carrera, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Puede especificar filtros para que su nueva lista solo incluye ciertos valores. Por ejemplo, puede crear una nueva lista a partir de una lista de números. Su nueva lista solo puede incluir números mayores que 250.

La sintaxis para la comprensión de una lista en Python es la siguiente:

 [expresión para el elemento de la lista] 

Esta sintaxis es similar a Python para declaración . Pero, la declaración está en una línea. Para distinguir entre una declaración for, se incluye una lista de comprensión entre corchetes.


Hay tres partes en la sintaxis anterior:

  • expresión : el valor final que va a la nueva lista.
  • item : el elemento individual de la lista sobre el que itera.
  • list : la lista o el objeto iterable a través del cual atraviesa la comprensión de la lista (tipos de datos aceptables incluir tuplas, cadenas y listas).

Puede usar una lista de comprensión con una declaración Python if & hellip; else dentro:

 [expresión para el elemento en la lista si la condición es ninguna] 

Esta comprensión agrega elementos a la lista solo si cumplen con la condición especificada.

El uso de listas por comprensión le permite crear una nueva lista a partir de una existente sin definir completo para declaraciones. para stat Los elementos ocupan al menos dos líneas de código, mientras que puede escribir una lista de comprensión en una línea.

Algunas personas dicen que las listas de comprensión son más código Pythonic. Esto se debe a que son más eficientes que usar una declaración corta for .




Ejemplo de comprensión de lista de Python

Supongamos que queremos hacer una lista de todas las pizzas que vendemos en nuestra tienda. Vamos a mover todas las pizzas de pollo a la categoría Pollo en nuestro menú. Para hacerlo, podríamos filtrar nuestras pizzas usando para declaraciones. O bien, podríamos filtrar nuestra lista usando una lista por comprensión.

Podríamos usar una lista por comprensión para generar una nueva lista de pizzas cuyos nombres contengan Pollo según nuestra lista existente de pizzas . Podríamos hacerlo usando este código:

 pizzas = ['Chicken',' Margherita', 'Chicken y Bacon', 'Vegan Special',' Spinach and Brie', 'BBQ Chicken'] chicken_pizzas = [p for p in pizzas if" Chicken "in p] print (chicken_pizzas) 

Nuestro comprensión devuelve la siguiente lista de salida:

 [& lsquo; Chicken & rsquo ;, & lsquo; Chicken and Bacon & rsquo ;, & lsquo; BBQ Chicken & rsquo;] 

En nuestro código, primero definimos una lista de pizzas en nuestro menú. Nuestras pizzas se almacenan en la variable de Python llamada pizzas . Luego, usamos una lista de comprensión para crear una nueva lista de pizzas cuyos nombres contienen Pollo.

Nuestra lista de comprensión consta de las siguientes partes:

  • p : este es el valor que se agregará a nuestra lista.
  • para p en pizzas : esto recorre cada pizza en nuestra & ldquo; pizzas & rdquo; lista.
  • si & ldquo; Pollo & rdquo; en p: comprueba si cada pizza contiene & ldquo; pollo & rdquo ;. Si esto se evalúa como Verdadero, el valor almacenado en & ldquo; p & rdquo; se agrega a nuestra lista.

Nuestra lista de comprensión solo tomó una línea de código. Mientras que en nuestro siguiente ejemplo, necesitamos usar tres líneas de código con una instrucción for para hacer Funciona. Nuestro siguiente ejemplo muestra hasta qué punto las listas por comprensión le ayudan a escribir un código más limpio.

Sin una lista de comprensión

Volvamos al ejemplo de la pizza de pollo. Sin utilizar un comprensión de listas, si quisiéramos generar una lista de pizzas de pollo en nuestro menú, usaríamos este código:

 pizzas = ['Chicken',' Margherita', 'Chicken and Bacon',' Vegan Special', 'Spinach and Brie',' BBQ Chicken'] chicken_pizzas = [] para pizza en pizzas: si "Pollo" en pizza: chicken_pizzas.append (pizza) print (chicken_pizzas) 

Nuestro código devuelve:

 [& lsquo; Chicken & rsquo ;, & lsquo; Chicken and Bacon & rsquo ;, & lsquo; BBQ Chicken & rsquo;] 

Primero, definimos dos listas. Una lista almacena una lista de pizzas que se venden en nuestra tienda. La otra lista almacena una lista de todas las pizzas de pollo que vendemos. La lista de pizzas de pollo que vendemos está inicialmente vacía.

Usamos un & ldquo; para & rdquo; declaración para revisar cada pizza en nuestra lista de pizzas. Luego, verificamos si cada pizza contiene la palabra Pollo Si una pizza contiene la palabra Pollo , agregamos esa pizza a nuestra lista de pizzas de pollo. En este caso, tres pizzas contienen pollo , y las tres pizzas se agregan a nuestra lista de pizzas_de_pollo .

"Career Karma entró en mi vida cuando Lo necesitaba más y rápidamente me ayudó a combinar con un bootcamp. ¡Dos meses después de graduarme, encontré el trabajo de mis sueños que se alineaba con mis valores y metas en la vida! "

Venus, ingeniero de software de Rockbot

Como puede ver, para verificar si una pizza contiene pollo y agregarlo a nuestra lista, usamos tres líneas de código. Hay una manera más eficiente de escribir este código: usando listas por comprensión.




Listado por comprensiones usando if & hellip; else

También puede usar un if & hellip; else declaración con una lista de comprensión.


Anteriormente, usamos una declaración if para agregar una pizza a nuestra lista de pizzas de pollo. Solo agregamos una pizza si el nombre de la pizza incluía el término Pollo . Pero, supongamos que estamos haciendo una lista de las pizzas vegetarianas.

Queremos agregar & ldquo; Carne & rdquo; a una lista si el nombre de una pizza contiene Pollo y Vegetariana si el nombre de una pizza no contiene Pollo .

Esto se puede hacer usando una lista de comprensión:

 pizzas = ['Chicken',' Margherita', 'Chicken and Bacon',' Vegan Special', 'Spinach and Brie',' BBQ Chicken'] is_veggie = ["Meat" if "Chicken" in p else "Vegetarian" for p in pizzas] print (is_veggie) 

Nuestro código devuelve:

 [& lsquo; Meat & rsquo ;, & lsquo ; Vegetariano & rsquo ;, & lsquo; Carne & rsquo ;, & lsquo; Vegetariano & rsquo ;, & lsquo; Vegetariano & rsquo ;, & lsquo; Carne & rsquo;] 

Analicemos nuestro código. Primero, declaramos una lista de pizzas llamada pizzas . Luego, usamos una lista de comprensión para evaluar si el nombre de una pizza contiene Pollo o no.

Si el nombre de una pizza contiene Pollo , el valor Carne se agrega a nuestra lista is_veggie . De lo contrario, se agrega el valor Vegetariano .

Como puede ver, el primer valor en nuestra lista is_veggie es Carne , porque su valor correspondiente en la lista de pizzas es Pollo . Pero, nuestro siguiente valor es Vegetariano , porque su valor correspondiente en la lista de pizzas es Margherita , que no contiene Pollo .






Conclusión

Las listas de comprensión le permiten crear una nueva lista basada en una lista existente. Usando listas por comprensión, puede crear una copia de una lista o crear una nueva lista que filtre valores de una lista anterior.

Este tutorial trata, con referencia a ejemplos, los conceptos básicos de las listas de Python y cómo para usar la técnica de comprensión de listas para crear nuevas listas.

¿Quieres aprender más sobre codificación en Python? Consulte nuestra guía de cómo aprender Python . Esta guía contiene una lista de recursos de aprendizaje que lo ayudarán a continuar su viaje hacia el dominio de Python.





Python de comprensión de lista: StackOverflow Questions