Aplanamiento poco profundo: esto significa aplanar la lista a un nivel de profundidad único.
Aplanación profunda: esto significa aplanar la lista a cualquier nivel de profundidad.
Los temas que vamos a discutir en este artículo son los siguientes:
Método 1: Usando para bucle
En este método, utilizaremos for-loop, que es muy común en cada lenguaje de programación. Iteramos cada elemento en la lista y luego iteramos ese elemento aún más, como se muestra en el programa a continuación.
LST = [[30,7], [8,9], [30,7], [8,9]]Producción:
Lista antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9]]Línea 1: Creamos una lista de listas.
Línea 3 a 5: En esta línea, estamos ejecutando un bucle anidado. El exterior para el bucle es para la lista principal, y el bucle interno para los elementos es para los elementos. Si ve este bucle anidado, descubrirá que cada elemento de la lista de subelementos se extrajo y agregó a la nueva lista (Flatten_List). De esta manera, cada elemento en la sublist ahora está separado.
Línea 6 a 7: Estas líneas que muestran la lista original antes y después de aplanar la lista.
Método 2: Uso de la comprensión de la lista
La comprensión de la lista es un método avanzado de lo anterior para el bucle donde escribimos todo en una sola línea.
LST = [[30,7], [8,9], [30,7], [8,9]]Producción:
Lista antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9]]Línea 1: Creamos una lista de la lista.
Línea 3: Esta línea ejecuta dos bucles en una sola línea para aplanar la lista.
Método 3: Uso del método Flatten ()
Otro método es usar la biblioteca Flatten () como se muestra en el programa que se detalla a continuación. Pero el método Flatten funcionará solo a un nivel de la lista anidada; Si hay listas profundamente anidadas, entonces no aplanará la lista. A continuación se presentan ejemplos de programas anidados y profundamente anidados.
de iteration_utilidades import aplanarProducción:
[30, 7, 8, 9, 30, 7, 8, 9]Línea 3: Llamamos al método aplanar y pasar la lista a eso como argumento. La salida anterior muestra que nuestra lista de listas ahora está aplanada.
Ahora, vamos a ver una lista profundamente anidada para el método Flatten.
de iteration_utilidades import aplanarProducción:
[30, 7, 8, 9, 30, 7, 8, 9, [2]]Línea 2: Creamos una lista anidada y también agregamos otro elemento [[2]] que está profundamente anidado.
Línea 3: Llamamos al método aplanar y pasar la lista a eso como argumento. La salida anterior muestra que no se hace para aplanar la lista profundamente anidada por completo porque el elemento [2] todavía está dentro de una lista.
Método 4: Uso del método Deepflatten ()
El otro método es Deepflatten () que puede aplanar la lista profundamente anidada, que no se realiza por el método Flatten como hemos visto en el ejemplo anterior.
de iteration_utilidades importe DeepflattenProducción:
Lista de LST antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[200]]]Línea 1: Importamos el método Deepflatten.
Línea 4: Llamamos al método profundo y pasamos la lista profundamente anidada a eso como argumento. La salida anterior muestra que nuestra lista profundamente anidada ahora está aplanada.
Método 5: Uso del método Pandas Flatten ()
Este método hace la lista de aplanas incluso si la lista está profundamente anidada.
de pandas.centro.La importación común aplanadaProducción:
Lista antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Línea 4: Llamamos al método aplanar y pasar la lista profundamente anidada a eso como argumento. La salida anterior muestra que nuestra lista profundamente anidada ahora está aplanada.
Método 6: Uso del método matplotlib flatten ()
Este método hace la lista de aplanas incluso si la lista está profundamente anidada.
de matplotlib.La importación del libro c aplanadorProducción:
Lista antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Línea 4: Llamamos al método aplanar y pasar la lista profundamente anidada a eso como argumento. La salida anterior muestra que nuestra lista profundamente anidada ahora está aplanada.
Método 7: Uso del método unipath flatten ()
Este método hace la lista de aplanas incluso si la lista está profundamente anidada.
Importar unipathProducción:
Lista antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Línea 5: Llamamos al método aplanar y pasar la lista profundamente anidada a eso como argumento. La salida anterior muestra que nuestra lista profundamente anidada ahora está aplanada.
Método 8: Uso del método SetupTools Flatten ()
Este método hace la lista Flatten a solo un nivel.
de setuptools.Los espacios de nombres de importación se aplananProducción:
Lista antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Línea 2: Creamos una lista anidada y también agregamos otro elemento [[2]] que está profundamente anidado.
Línea 4: Llamamos al método aplanar y pasar la lista a eso como argumento. La salida anterior muestra que no se hace para aplanar la lista profundamente anidada por completo porque el elemento [2] todavía está dentro de una lista.
Método 9: Uso de ITerTools.método de cadena
Para desempaquetar la lista de listas, también podemos usar los iTerTools.método de cadena. Este método tiene dos formas de aplanar la lista de listas. Ambos métodos se dan a continuación. Estos métodos también fallan la lista de la lista a un solo nivel.
Usando los IterTools.cadena.De_Iterable
Importar iTertoolsProducción:
Lista de LST antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]]Línea 2: Creamos una lista anidada y también agregamos otro elemento [[2]] que está profundamente anidado.
Línea 4: Llamamos el método ITerTools.cadena.from_Iterable () y pasar la lista a eso como argumento. La salida anterior muestra que no se hace para aplanar completamente la lista profundamente anidada porque el elemento [2] todavía está dentro de una lista.
Usando el operador *
Importar iTertoolsProducción:
Lista de LST antes del aplanamiento [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]]Método 10: Uso de Numpy.método ravel ()
El otro método es Numpy.Ravel que también aplana la lista anidada. Pero este método se aplana a un nivel de los anidados.
importar numpy como npProducción:
Lista antes del aplanamiento [[30 7]Línea 3: Llamamos el método Numpy Ravel. La salida anterior muestra que nuestra matriz de lista anidada ahora está aplanada.
Método 11: Uso del método Numpy ReShape ()
El otro método es Numpy Rephape, que también aplana la lista anidada. Pero este método se aplana a un nivel de los anidados.
importar numpy como npLínea 3: Llamamos el método de reinversión (-1). La salida anterior muestra que nuestra matriz de lista anidada ahora está aplanada.
Método 12: Uso del método Numpy Flatten ()
El otro método es Numpy Flatten (), que también aplana la lista anidada. Pero este método se aplana a un nivel de los anidados.
importar numpy como np
Producción:
Línea 5: Llamamos el método aplanado. La salida anterior muestra que nuestra matriz de lista anidada ahora está aplanada.
Método 13: Uso de Numpy.método concatenate ()
El otro método es Numpy.concatenate (), que también aplana la lista anidada. Pero este método se aplana a un nivel de los anidados.
importar numpy como npProducción:
Lista antes del aplanamiento [[30 7]Línea 3: Llamamos el método numpy.concatenate () y pase la matriz de la lista anidada en eso como argumento. La salida anterior muestra que nuestra matriz de lista anidada ahora está aplanada.
Método 14: utilizando el método plano numpy
El otro método es Numpy Flat que también aplana la lista anidada. Pero este método se aplana a un nivel de los anidados.
importar numpy como npProducción:
Lista antes del aplanamiento [[30 7]Línea 3: Llamamos al método plano, y la salida anterior muestra que nuestra matriz de lista anidada ahora está aplanada.
Conclusión:
En este blog, le hemos mostrado diferentes métodos que podemos usar para aplanar nuestra lista de listas. Todos los métodos anteriores funcionan perfectamente para el nivel de la lista anidada. Pero si hay listas profundamente anidadas, algunos de los métodos anteriores funcionan perfectamente. Entonces, depende de usted y, según los requisitos de su programa, qué método desea utilizar.
El código para este artículo también está disponible en el enlace GitHub:
https: // github.com/shekharpandey89/flatten-the-list-of-list