Todas las Noticias en Películas, Avances de Películas y Reseñas.

Cómo hacer una lista plana a partir de una lista de listas

¿Qué es el aplanamiento de un lista? ¿Cómo hacer una lista plana a partir de una lista de listas? Hablaremos de todo esto en breve. Entonces, quédate con él mientras avanzamos en este viaje.

El aplanamiento de una lista generalmente significa los métodos para eliminar dimensiones de las listas, es decir, convertirla en una lista unidimensional. ¿Y cómo hacemos esto? Podemos aplanar una lista haciendo uso de listas por comprensión, itertools o incluso bucles anidados.

Hacer una lista plana a partir de una lista de listas

Las listas de Python generalmente pueden ser de muchas dimensiones e incluso unidimensionales. Cuando hay varias listas, una dentro de otra, esto se denomina “lista anidada”. Pero podemos convertir esta lista en una lista 1-D normal y esto se denomina “lista plana”.

Entonces, veamos cómo aplanamos las listas en las secciones a continuación.

Aplanar una lista

Hay tres formas de aplanar una lista de Python:

  • Hacer uso de listas de comprensión
  • En segundo lugar, hacer uso de bucles for anidados.
  • O, haciendo uso de la función itertools.chain()

Veremos todo esto a través de varios con la ayuda de un amplio número de ejemplos, para dejar muy claros todos estos conceptos.

Uso de listas de comprensión

Lista de comprensión hace uso del contenido de una lista existente para definir la nueva lista. Es muy fácil y utiliza sintaxis compactas para crear una lista a partir de otra lista. Por lo tanto, a su vez, es una forma muy concisa de generar una nueva lista realizando operaciones en cada elemento de la lista existente.

Veamos un ejemplo:

num = [4, 5, 6]
new = [num * 3 for number in num]

La lista de comprensión anterior multiplica todos los números de la lista por 3. Ahora que hemos pasado por un ejemplo; Tomemos otro ejemplo para que este método quede claramente claro.

Recomendado:  Microsoft Edge Dev 102.0.1227.0 es más estable y seguro
items = [
	["Potato", "Beetroot", "Onion", "Spinach"],
	["Bread", "Egg"],
	["Cheese", "Turkey", "Bacon"]
]

En la lista anidada denominada “artículos”, la primera lista contiene artículos vegetales para hacer sándwiches. La siguiente lista contiene algunos otros artículos y finalmente, la tercera lista contiene artículos de carne.

Ahora, veamos cómo combinar estas tres listas en una sola lista de elementos.

items = [item for sublist in items for item in sublist]
print(items)

La comprensión de la lista anterior itera cada elemento de la lista “elementos”. Los elementos se agregan uno por uno en una nueva lista y luego se imprimen.

El resultado de la comprensión de la lista anterior:

["Potato", "Beetroot", "Onion", "Spinach","Bread", "Egg", "Cheese", "Turkey", "Bacon"]

Ver !! Hemos convertido con éxito las listas anidadas (tres listas) en una sola lista 1-D. Ahora que hemos convertido la lista anterior y hemos utilizado el método de comprensión de listas; Ahora hagamos uso de bucles for anidados para la misma tarea.

Usar bucle for anidado

El bucle for anidado es simplemente un bucle dentro de otro bucle. Entonces, veamos cómo hacemos que estas listas sean una lista 1-D. Vemos la aplicación del bucle for anidado para que esto sea posible.

new = []
for sublist in items:
	for item in sublist:
		new.append(item)

print(new)

Veamos el resultado del código anterior:

["Potato", "Beetroot", "Onion", "Spinach","Bread", "Egg", "Cheese", "Turkey", "Bacon"]

Uso de itertools

Itertools es una biblioteca de Python que tiene amplios métodos para iterar sobre objetos y realizar manipulaciones sencillas. Usaremos el método chain() de itertools para aceptar una lista de listas y devolver una lista plana.

# First we will import the itertools library by using the import command
import itertools

# Now, we define the list of lists and then make use of the chain() function 
items = [
	["Potato", "Beetroot", "Onion", "Spinach"],
	["Bread", "Egg"],
	["Cheese", "Turkey", "Bacon"]
]
new = itertools.chain(*items)  # we use the * symbol to unpack the items in the list.

#Now we print the flattened list
print(list(items))

El resultado del programa anterior es el siguiente:

["Potato", "Beetroot", "Onion", "Spinach","Bread", "Egg", "Cheese", "Turkey", "Bacon"]

Por lo tanto, vemos que itertools es un método excelente que podemos utilizar para aplanar listas. Este es un enfoque más avanzado.

Recomendado:  Cosas a considerar al comprarle a su hijo su primer teléfono inteligente

CONCLUSIÓN

Hemos visto que podemos aplanar listas en Python usando listas por comprensión, bucles for anidados y biblioteca itertools. El método de comprensión de listas es el método más adecuado o el método preferido porque es el más fácil y el más simple de todos.

Porque, aunque los bucles anidados también son efectivos, necesitan más líneas de código, mientras que la biblioteca itertools puede ser un poco difícil para los principiantes.