lista de aplanar python

Funciones y métodos de Python

Acoplar una lista se refiere al proceso de eliminar una dimensión de una lista. Una dimensión se refiere a una coordenada adicional necesaria para ubicar un elemento en una lista. Puede aplanar una lista de Python usando una lista de comprensión, un bucle for anidado o el método itertools.chain (). 

Una lista de Python puede contener varias dimensiones. Esto significa que tiene una lista dentro de listas. Estas listas, a veces denominadas "listas anidadas", se puede volver a convertir en una lista normal.

Esto significa que puede mover todos los valores de las listas dentro de una lista a una sola lista. Convertir una lista de listas en una lista se denomina & ldquo; acoplar una lista & rdquo;




Python Flatten List

Hay tres formas de acoplar una lista de Python:

  • Usando una lista de comprensión.
  • Usando un bucle for anidado.
  • Usando el método itertools.chain ().

En esta guía, hablamos sobre cómo aplanar una lista usando una comprensión de lista, un bucle for y el método itertools.chain () . Analizamos dos ejemplos para que pueda comenzar a aplanar listas en sus propios programas.




Python: Aplanar listas usando una comprensión de listas

A Comprensión de lista de Python define una lista basada en el contenido de una lista existente. Puede personalizar cada elemento que entra en su nueva lista especificando condiciones o cambios dentro de la comprensión.

Las comprensiones son un azúcar sintáctico para usar un bucle for para iterar sobre una lista y generar una nueva lista. Esto significa que funcionan de la misma manera fundamental que un bucle for pero usan una sintaxis diferente.

Aquí está la sintaxis para una comprensión de la lista:

El 81% de los participantes dijeron que se sentían más seguros sobre sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asóciese a un bootcamp hoy mismo.

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

Esta comprensión multiplica cada número en nuestros & ldquo; números & rdquo; list by 2.

Lista plana: Ejemplo de comprensión de listas

Tenemos una lista de listas que contiene diferentes rellenos de sándwich disponibles en un restaurante. Actualmente, nuestra lista de listas se ve así:

 alimentos = [["Tomate y pepino", "Hummus , Remolacha y lechuga "], [" Queso "," Huevo "], [" Jamón "," Tocino "," Club de pollo "," Atún "]] 

El primer la lista contiene rellenos veganos para sándwiches; la segunda lista contiene rellenos vegetarianos para sándwiches; la tercera lista contiene todos los rellenos de sándwich que contienen carne.


Queremos convertir esta lista en una única lista de alimentos. Es más fácil trabajar con una lista con una dimensión en lugar de dos. No es necesario tener más de una dimensión en esta lista. Para eliminar la segunda dimensión de nuestra lista, podemos usar una lista de comprensión:

 new_foods = [ alimentos para sublista en alimentos para alimentos en sublista] imprimir (nuevos_alimentos) 

Esta lista de comprensión itera sobre todas las listas de & ldquo; alimentos & rdquo; Variable de Python . Luego, cada valor se agrega a una lista principal. Una vez que se genera nuestra lista, la imprimimos en la consola.

Veamos nuestro código y veamos qué sucede:

 ['Tomate y pepino',' Hummus, remolacha y lechuga ce', 'Queso',' Huevo', 'Jamón',' Tocino', 'Club de pollo',' Atún'] 

Nuestra lista de listas se ha transformado con éxito en una lista. Todos los ingredientes ahora aparecen dentro de una lista en lugar de tres.

También logramos este mismo resultado usando un Python for loop anidado. & ldquo; Anidado para bucle & rdquo; es otra forma de decir "un bucle for dentro de un bucle for". Nuestra lista de comprensión es otra forma de representar lo siguiente para el bucle:

 new_foods = [] para sublista en alimentos: for food in sublist: new_foods.append (food) print (new_foods) 

Nuestro código usa dos bucles for para iterar sobre cada elemento de la lista en cada lista en la lista original de listas. Ejecutemos nuestro código:

 ['Tomate y pepino',' Hummus, remolacha y lechuga' , 'Queso',' Huevo', 'Jamón',' Tocino', 'Club de pollo',' Atún'] 

Nuestro programa devuelve el mismo resultado que nuestra lista de comprensión. En la mayoría de los casos, la comprensión de una lista es una mejor solución que un bucle for. Las listas por comprensión son más cortas y, en este caso, más fáciles de leer que un bucle for anidado.





Python: Flatten List Using Itertools

Itertools es un módulo de la biblioteca estándar de Python. El módulo proporciona una variedad de métodos, lo que facilita el trabajo con iterable objetos y generadores.

Para nuestros propósitos, solo nos referimos al método chain () . Este método acepta una lista de listas y devuelve una lista plana.

Comience importando el módulo itertools en nuestro código usando una declaración de importación de Python :

 import itertools 

A continuación, defina la lista de listas y use el método chain () para aplanar la lista:

 alimentos = [["Tomate y pepino", "Hummus, remolacha y lechuga"], [" Queso "," Huevo "], [" Jamón "," Tocino "," Chic ken Club "," Tuna "]] new_foods = itertools.chain (* alimentos) 

En nuestro código, usamos el símbolo * para descomprimir nuestra lista. Esto convierte nuestra lista en argumentos de función que pueden ser analizados por el método chain ()

El método chain () devuelve un objeto itertools.chain. Para ver nuestra lista aplanada, tenemos que convertir este objeto en una lista. Hacemos esto usando el método list () :

 print (list (new_foods )) 

Ejecutemos nuestro código:

 [' Tomate y pepino', 'Hummus, remolacha y lechuga',' Queso', 'Huevo',' Jamón', 'Bacon',' Chicken Club', 'Atún'] 

Nuestro código ha aplanado nuestra lista. 

"Career Karma entró en mi vida cuando más lo necesitaba 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

Si bien itertools es una forma eficaz de aplanar una lista, es más avanzada que los dos últimos enfoques que hemos hemos discutido.

Esto se debe a que debe importar itertools en su código, lo que introduce una nueva dependencia. Es más, el método chain () implica desempaquetar, lo que puede ser difícil de entender. & Nbsp;




Conclusión

Puede aplanar una lista de Python usando una lista de comprensión, un bucle for anidado y el método itertools.chain (). La comprensión de la lista es la más & ldquo; Pythonic & rdquo; método y, por lo tanto, se prefiere en la mayoría de los casos.


Si bien los bucles for anidados son efectivos, consumen más líneas de código que una lista de comprensión. El método itertools.chain () es igualmente efectivo pero puede ser difícil de entender para los principiantes.

Por lo general, no es necesario importar una nueva biblioteca & mdash; itertools & mdash; cuando Python le brinda todas las herramientas que necesita para aplanar una lista.

¿Quiere aprender más sobre Python? Consulte nuestra guía de cómo aprender Python completa. Encontrará consejos de aprendizaje de expertos y una lista de los mejores cursos y libros de los que puede aprender. .





lista de aplanar python: StackOverflow Questions

Tutorials