Appiattimento poco profondo: questo significa appiattire l'elenco a un solo livello di profondità.
Appiattimento profondo: questo significa appiattire l'elenco a qualsiasi livello di profondità.
Gli argomenti di cui discuteremo in questo articolo sono di seguito:
Metodo 1: usando per loop
In questo metodo, useremo per loop, che è molto comune in ogni linguaggio di programmazione. Itegniamo ogni elemento nell'elenco e quindi itechiamo ulteriormente quell'elemento, come mostrato nel programma seguente.
LST = [[30,7], [8,9], [30,7], [8,9]]Produzione:
Elenco prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9]]Linea 1: Abbiamo creato un elenco di elenchi.
Riga da 3 a 5: In questa linea, stiamo eseguendo un nidificato per loop. Il loop esterno è per l'elenco principale e il ciclo interno è per gli elementi. Se vedi questo ciclo nidificato, scoprirai che ogni elemento dall'elenco dei sotto-elementi è stato estratto e aggiunto al nuovo elenco (Flatten_List). In questo modo, ogni elemento nella sotto-list è ora separato.
Riga da 6 a 7: Queste righe che mostrano l'elenco originale prima e dopo aver appiattito l'elenco.
Metodo 2: utilizzando la comprensione dell'elenco
La comprensione dell'elenco è un metodo avanzato di quanto sopra per loop in cui scriviamo tutto in una sola riga.
LST = [[30,7], [8,9], [30,7], [8,9]]Produzione:
Elenco prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9]]Linea 1: Abbiamo creato un elenco dell'elenco.
Riga 3: Questa riga che esegue due loop in una singola riga per appiattire l'elenco.
Metodo 3: utilizzando il metodo flatten ()
Un altro metodo è utilizzare la libreria appiattica () come mostrato nel programma indicato di seguito. Ma il metodo appiattito funzionerà solo a un livello dell'elenco nidificato; Se ci sono elenchi profondamente nidificati, non appiattirà l'elenco. Di seguito sono riportati esempi di programmi singoli nidificati e profondamente nidificati.
da iteration_utilities import appiattitoProduzione:
[30, 7, 8, 9, 30, 7, 8, 9]Riga 3: Chiamiamo il metodo appiattito e passiamo l'elenco in quello come argomento. L'output sopra mostra che il nostro elenco di elenchi è ora appiattito.
Ora, vedremo un elenco profondamente nidificato per il metodo appiattito.
da iteration_utilities import appiattitoProduzione:
[30, 7, 8, 9, 30, 7, 8, 9, [2]]Linea 2: Abbiamo creato un elenco nidificato e aggiunto anche un altro elemento [[2]] che è profondamente nidificato.
Riga 3: Chiamiamo il metodo appiattito e passiamo l'elenco in quello come argomento. L'output sopra mostra che non viene fatto per appiattire completamente l'elenco profondamente nidificato perché l'elemento [2] è ancora all'interno di un elenco.
Metodo 4: usando il metodo DeepFlatten ()
L'altro metodo è il deepflatten () che può appiattire l'elenco profondamente nidificato, che non è fatto con il metodo appiattito come abbiamo visto nell'esempio sopra.
da iteration_utilities import deepflattenProduzione:
Elenca LST prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[200]]]Linea 1: Importiamo il metodo Deepflatten.
Riga 4: Chiamiamo il metodo in profondità e passiamo l'elenco profondamente nidificato in quello come argomento. L'output sopra mostra che la nostra lista profondamente nidificata è ora appiattita.
Metodo 5: usando il metodo Pandas fATTENT ()
Questo metodo fa l'elenco appiattito anche se l'elenco è profondamente nidificato.
da panda.nucleo.Importazione comune appiattireProduzione:
Elenco prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Riga 4: Chiamiamo il metodo appiattito e passiamo l'elenco profondamente nidificato in quello come argomento. L'output sopra mostra che la nostra lista profondamente nidificata è ora appiattita.
Metodo 6: Utilizzo del metodo MatplotLib flatten ()
Questo metodo fa l'elenco appiattito anche se l'elenco è profondamente nidificato.
da matplotlib.cbook import appiattitoProduzione:
Elenco prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Riga 4: Chiamiamo il metodo appiattito e passiamo l'elenco profondamente nidificato in quello come argomento. L'output sopra mostra che la nostra lista profondamente nidificata è ora appiattita.
Metodo 7: utilizzando il metodo unipath fATTtten ()
Questo metodo fa l'elenco appiattito anche se l'elenco è profondamente nidificato.
importare unipathProduzione:
Elenco prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Riga 5: Chiamiamo il metodo appiattito e passiamo l'elenco profondamente nidificato in quello come argomento. L'output sopra mostra che la nostra lista profondamente nidificata è ora appiattita.
Metodo 8: utilizzando il metodo di setUptOols fATTENT ()
Questo metodo fa l'elenco appiattito a un solo livello.
da setuptools.Gli spazi dei nomi importano appiattitiProduzione:
Elenco prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linea 2: Abbiamo creato un elenco nidificato e aggiunto anche un altro elemento [[2]] che è profondamente nidificato.
Riga 4: Chiamiamo il metodo appiattito e passiamo l'elenco in quello come argomento. L'output sopra mostra che non viene fatto per appiattire completamente l'elenco profondamente nidificato perché l'elemento [2] è ancora all'interno di un elenco.
Metodo 9: usando iTertools.Metodo a catena
Per disimballare l'elenco degli elenchi, possiamo anche usare l'ITertools.Metodo a catena. Questo metodo ha inoltre due modi per appiattire l'elenco degli elenchi. Entrambi i metodi sono riportati di seguito. Questi metodi hanno anche fallito l'elenco dell'elenco a un solo livello.
Usando gli ITTeTools.catena.da_iterable
Importa iTtoolsProduzione:
Elenca LST prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linea 2: Abbiamo creato un elenco nidificato e aggiunto anche un altro elemento [[2]] che è profondamente nidificato.
Riga 4: Chiamiamo il metodo iTertools.catena.da_iterable () e passare l'elenco in quello come argomento. L'output sopra mostra che non viene fatto per appiattire completamente l'elenco profondamente nidificato perché l'elemento [2] è ancora all'interno di un elenco.
Usando l'operatore *
Importa iTtoolsProduzione:
Elenca LST prima di appiattire [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Metodo 10: usando numpy.Metodo Ravel ()
L'altro metodo è numpy.Ravel che appiattisce anche l'elenco nidificato. Ma questo metodo si appiattisce a un livello nidificato.
Importa Numpy come NPProduzione:
Elenco prima di appiattire [[30 7]Riga 3: Chiamiamo il metodo Numpy Ravel. L'output sopra mostra che il nostro array di elenchi nidificati è ora appiattito.
Metodo 11: usando il metodo Numpy Reshape ()
L'altro metodo è Numpy Reshape, che appiattisce anche l'elenco nidificato. Ma questo metodo si appiattisce a un livello nidificato.
Importa Numpy come NPRiga 3: Chiamiamo il metodo Reshape (-1). L'output sopra mostra che il nostro array di elenchi nidificati è ora appiattito.
Metodo 12: utilizzando il metodo Numpy Fratten ()
L'altro metodo è numpy appiatten (), che appiattisce anche l'elenco nidificato. Ma questo metodo si appiattisce a un livello nidificato.
Importa Numpy come NP
Produzione:
Riga 5: Chiamiamo appiattire il metodo. L'output sopra mostra che il nostro array di elenchi nidificati è ora appiattito.
Metodo 13: usando numpy.Metodo Concatenate ()
L'altro metodo è numpy.Concatenate (), che appiattisce anche l'elenco nidificato. Ma questo metodo si appiattisce a un livello nidificato.
Importa Numpy come NPProduzione:
Elenco prima di appiattire [[30 7]Riga 3: Chiamiamo il metodo numpy.Concatenate () e trasmetti l'array di elenco nidificato in quello come argomento. L'output sopra mostra che il nostro array di elenchi nidificati è ora appiattito.
Metodo 14: usando il metodo flat numpy
L'altro metodo è Numpy Flat che appiattisce anche l'elenco nidificato. Ma questo metodo si appiattisce a un livello nidificato.
Importa Numpy come NPProduzione:
Elenco prima di appiattire [[30 7]Riga 3: Chiamiamo il metodo piatto e l'output sopra mostra che il nostro array di elenchi nidificati è ora appiattito.
Conclusione:
In questo blog, ti abbiamo mostrato diversi metodi che possiamo usare per appiattire la nostra lista di elenchi. Tutti i metodi di cui sopra funzionano perfettamente per l'unico livello dell'elenco nidificato. Ma se ci sono elenchi profondamente nidificati, alcuni dei metodi di cui sopra funzionano perfettamente. Quindi, dipende da te e, secondo i requisiti del tuo programma quale metodo desideri utilizzare.
Il codice per questo articolo è disponibile anche sul collegamento GitHub:
https: // github.com/shekharpandey89/appiattire la lista di lista