Płytkie spłaszczenie: oznacza to spłaszczenie listy tylko do jednego poziomu głębokości.
Głębokie spłaszczenie: Oznacza to spłaszczenie listy do dowolnego poziomu głębokości.
Tematy, które zamierzamy omówić w tym artykule, są jak poniżej:
Metoda 1: Zastosowanie do pętli
W tej metodzie będziemy używać pętli, co jest bardzo powszechne w każdym języku programowania. Itertujemy każdy element na liście, a następnie dalej iterujemy ten element, jak pokazano w poniższym programie.
LST = [[30,7], [8,9], [30,7], [8,9]]Wyjście:
Lista przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9]]Linia 1: Utworzyliśmy listę list.
Linia 3 do 5: W tej linii prowadzimy zagnieżdżoną pętlę. Zewnętrzna pętla jest dla głównej listy, a wewnętrzna pętla jest dla elementów. Jeśli zobaczysz tę zagnieżdżoną pętlę, przekonasz się, że każdy element z listy podelementu został wyodrębniony i dołączony do nowej listy (Flatten_List). W ten sposób każdy element na liście jest teraz oddzielony.
Linia 6 do 7: Te linie pokazujące oryginalną listę przed i po spłaszczeniu listy.
Metoda 2: Za pomocą rozumienia listy
Rozumienie listy jest zaawansowaną metodą powyższej pętli, w której piszemy wszystko w jednym wierszu.
LST = [[30,7], [8,9], [30,7], [8,9]]Wyjście:
Lista przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9]]Linia 1: Utworzyliśmy listę listy.
Linia 3: Ta linia działająca dwie pętle w jednej linii do spłaszczenia listy.
Metoda 3: Za pomocą metody Flatten ()
Inną metodą jest użycie biblioteki Flatten (), jak pokazano w podanym poniżej programie. Ale metoda spłaszczona będzie działać tylko do jednego poziomu zagnieżdżonej listy; Jeśli istnieją głęboko zagnieżdżone listy, nie spłaszczy listy. Zarówno przykładowe zagnieżdżone, jak i głęboko zagnieżdżone przykłady programu podano poniżej.
Z ITERERATION_UTILINITY Import FlattenWyjście:
[30, 7, 8, 9, 30, 7, 8, 9]Linia 3: Nazywamy metodę spłaszczoną i przekazujemy listę jako argument. Powyższe dane wyjściowe pokazuje, że nasza lista list jest teraz spłaszczona.
Teraz zobaczymy głęboko zagnieżdżoną listę metody Flatten.
Z ITERERATION_UTILINITY Import FlattenWyjście:
[30, 7, 8, 9, 30, 7, 8, 9, [2]]Linia 2: Stworzyliśmy zagnieżdżoną listę, a także dodaliśmy kolejny element [[2]], który jest głęboko zagnieżdżony.
Linia 3: Nazywamy metodę spłaszczoną i przekazujemy listę jako argument. Powyższe wyjście pokazuje, że nie jest to zrobione, aby w pełni spłaszczyć głęboko zagnieżdżoną listę, ponieważ element [2] wciąż znajduje się w liście.
Metoda 4: Za pomocą metody Deepflatten ()
Drugą metodą jest Deepflatten (), która może spłaszczyć listę głęboko zagnieżdżoną, która nie jest wykonywana metodą spłaszczoną, jak widzieliśmy w powyższym przykładzie.
Z ITeration_utilites Import DeepflattenWyjście:
Lista LST przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[200]]]Linia 1: Importujemy metodę Deepflatten.
Linia 4: Nazywamy metodę Deepflatten i przekazujemy głęboko zagnieżdżoną listę jako argument. Powyższe wyjście pokazuje, że nasza głęboko zagnieżdżona lista jest teraz spłaszczona.
Metoda 5: Za pomocą metody pandas flatten ()
Ta metoda wykonuje listę spłaszcza, nawet jeśli lista jest głęboko zagnieżdżona.
z pandy.rdzeń.wspólny import spłaszczWyjście:
Lista przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linia 4: Nazywamy metodę spłaszczoną i przekazujemy głęboko zagnieżdżoną listę jako argument. Powyższe wyjście pokazuje, że nasza głęboko zagnieżdżona lista jest teraz spłaszczona.
Metoda 6: Za pomocą metody MATPlotlib Flatten ()
Ta metoda wykonuje listę spłaszcza, nawet jeśli lista jest głęboko zagnieżdżona.
z matplotlib.Cbook import FlattenWyjście:
Lista przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linia 4: Nazywamy tę metodę spłaszczoną i przekazujemy głęboko zagnieżdżoną listę jako argument. Powyższe wyjście pokazuje, że nasza głęboko zagnieżdżona lista jest teraz spłaszczona.
Metoda 7: Za pomocą metody Unipath Flatten ()
Ta metoda wykonuje listę spłaszcza, nawet jeśli lista jest głęboko zagnieżdżona.
importować UnipathWyjście:
Lista przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linia 5: Nazywamy metodę spłaszczoną i przekazujemy głęboko zagnieżdżoną listę jako argument. Powyższe wyjście pokazuje, że nasza głęboko zagnieżdżona lista jest teraz spłaszczona.
Metoda 8: Za pomocą metody setuptools flatten ()
Ta metoda wykonuje listę spłaszczoną tylko na jednym poziomie.
z Setuptools.Przestrzenie nazw importują spłaszczWyjście:
Lista przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linia 2: Stworzyliśmy zagnieżdżoną listę, a także dodaliśmy kolejny element [[2]], który jest głęboko zagnieżdżony.
Linia 4: Nazywamy metodę spłaszczoną i przekazujemy listę jako argument. Powyższe wyjście pokazuje, że nie jest to zrobione, aby w pełni spłaszczyć głęboko zagnieżdżoną listę, ponieważ element [2] wciąż znajduje się w liście.
Metoda 9: Korzystanie z IterTools.Metoda łańcucha
Aby rozpakować listę list, możemy również użyć iTerTools.Metoda łańcucha. Ta metoda ma dwa sposoby spłaszczenia listy list. Obie metody podano poniżej. Te metody również przerażają listę listy tylko do jednego poziomu.
Za pomocą iTerTools.łańcuch.From_iterable
importować itertoolsWyjście:
Lista LST przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Linia 2: Stworzyliśmy zagnieżdżoną listę, a także dodaliśmy kolejny element [[2]], który jest głęboko zagnieżdżony.
Linia 4: Nazywamy metodę itertools.łańcuch.from_iterable () i przekazaj listę jako argument. Powyższe wyjście pokazuje, że nie jest to zrobione, aby w pełni spłaszczyć głęboko zagnieżdżoną listę, ponieważ element [2] wciąż znajduje się w liście.
Korzystanie z * operatora
importować itertoolsWyjście:
Lista LST przed spłaszczeniem [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]Metoda 10: Za pomocą Numpy.metoda ravel ()
Inną metodą jest Numpy.Ravel, który również spłaszcza zagnieżdżoną listę. Ale ta metoda spłaszcza się do jednego poziomu zagnieżdżonych.
importować Numpy jako NPWyjście:
Lista przed spłaszczeniem [[30 7]Linia 3: Nazywamy metodę Numpy Ravel. Powyższe wyjście pokazuje, że nasza zagnieżdżona tablica listy jest teraz spłaszczona.
Metoda 11: Za pomocą metody Numpy Reshape ()
Drugą metodą jest Numpy Reshape, który również spłaszcza zagnieżdżoną listę. Ale ta metoda spłaszcza się do jednego poziomu zagnieżdżonych.
importować Numpy jako NPLinia 3: Nazywamy metodę przekształcenia (-1). Powyższe wyjście pokazuje, że nasza zagnieżdżona tablica listy jest teraz spłaszczona.
Metoda 12: Za pomocą metody Numpy Flatten ()
Drugą metodą jest Numpy Flatten (), która również spłaszcza zagnieżdżoną listę. Ale ta metoda spłaszcza się do jednego poziomu zagnieżdżonych.
importować Numpy jako NP
Wyjście:
Linia 5: Nazywamy metodę spłaszczoną. Powyższe wyjście pokazuje, że nasza zagnieżdżona tablica listy jest teraz spłaszczona.
Metoda 13: Korzystanie z Numpy.metoda conatenate ()
Inną metodą jest Numpy.conatenate (), który również spłaszcza zagnieżdżoną listę. Ale ta metoda spłaszcza się do jednego poziomu zagnieżdżonych.
importować Numpy jako NPWyjście:
Lista przed spłaszczeniem [[30 7]Linia 3: Numpy nazywamy metodę.Conatenate () i przekazuj zagnieżdżoną tablicę list jako argument. Powyższe wyjście pokazuje, że nasza zagnieżdżona tablica listy jest teraz spłaszczona.
Metoda 14: Za pomocą metody Numpy Flat
Inną metodą jest Numpy Flat, który również spłaszcza zagnieżdżoną listę. Ale ta metoda spłaszcza się do jednego poziomu zagnieżdżonych.
importować Numpy jako NPWyjście:
Lista przed spłaszczeniem [[30 7]Linia 3: Nazywamy metodę płaską, a powyższe wyjście pokazuje, że nasza zagnieżdżona tablica listy jest teraz spłaszczona.
Wniosek:
Na tym blogu pokazaliśmy różne metody, których możemy użyć do spłaszczenia naszej listy list. Wszystkie powyższe metody działają idealnie dla jednego poziomu zagnieżdżonej listy. Ale jeśli istnieją głęboko zagnieżdżone listy, niektóre z powyższych metod działają idealnie. Tak więc zależy od Ciebie i zgodnie z wymaganiami programu, której metody chcesz użyć.
Kod tego artykułu jest również dostępny w linku GitHub:
https: // github.com/shekharpandey89/flatten-the-list-list