In diesem Artikel erfahren Sie, wie Sie eine Liste von Listen durch Listenverständnis in Python reduzieren.
Bei der Arbeit mit einer Python-Liste kann es manchmal vorkommen, dass wir ein Problem haben, bei dem wir eine Reduzierung der Liste durchführen müssen, d. h. eine gemischte Liste in eine reduzierte Liste konvertieren. Dies kann Anwendungen in Domänen haben, die 1D-Listen als Eingabe verwenden.
Lassen Sie uns bestimmte Möglichkeiten besprechen, wie diese Aufgabe ausgeführt werden kann.
Beispiel:
Input : [[1,3, 'geeks'], [4,5], [6, 'best']] Output : [1, 3, 'geeks', 4, 5, 6, 'best'] Explaination: Flattening convert a mixed list to a flattened one.>
So reduzieren Sie die Liste in Python auf einzelne Elemente
Im Folgenden sind die Methoden aufgeführt, die wir in So reduzieren Sie eine Liste von Listen in Python behandeln:
- Liste reduzieren mit Listenverständnis
- Liste reduzieren mit Summe()
- Liste reduzieren mit Schleife
- Liste reduzieren mit flatten()-Methode
- Liste reduzieren mit Kette() mit isinstance()
- Liste reduzieren mit reduzieren() Funktion
- Reduzieren Sie die Liste mithilfe von Groupby
- Liste reduzieren mit itertools.chain.from_iterable()
- Reduzieren Sie die Liste mithilfe der Rekursion
1. Verwenden des Listenverständnisses zum Reduzieren einer Liste von Listen
Hier verwenden wir Listenverständnis um die Liste von 2D auf 1D zu reduzieren.
Python3
res>=> [i>for> row>in> [[>1>,>3>,>'geeks'>], [>4>,>5>],> >[>6>,>'best'>]]>for> i>in> row]> print>(res)> |
Markdown-Bilder
>
>
Ausgabe:
[1, 3, 'geeks', 4, 5, 6, 'best']>
Zeitkomplexität: O(n) wobei n die Anzahl der Elemente in der Liste ist
Hilfsraum: O(n) wobei n die Anzahl der Elemente in der Liste ist
2. Verwenden der Funktion sum() zum Reduzieren einer Liste von Listen
Hier verwenden wir die sum()-Funktion in dem wir test_list als iterierbares Objekt als ersten Parameter und den zweiten Parameter als leere Liste übergeben haben, in der das Element gespeichert wird.
Python3
test_list>=> [[>1>,>3>,>'gfg'>], [>4>,>5>], [>6>,>'best'>]]> test_list>=> sum>(test_list, [])> print>(test_list)> |
>
>
Ausgabe:
[1, 3, 'gfg', 4, 5, 6, 'best']>
Zeitkomplexität: O(n), wobei n die Länge der Liste test_list ist.
Hilfsraum: Es wird O(n) zusätzlicher Speicherplatz der Größe n erstellt, wobei n die Anzahl der Elemente in der Liste ist
3. Verwenden von f oder Schleife zu Reduzieren Sie eine Liste von Listen
Zur Ausführung dieser Aufgabe kann die Kombination der oben genannten Funktionalitäten genutzt werden. Dabei suchen wir nach einer Instanz der Liste und reduzieren sie, und die restlichen Elemente fügen wir der Liste brutal hinzu.
Python3
def> flatten(test_list):> >if> isinstance>(test_list,>list>):> >temp>=> []> >for> ele>in> test_list:> >temp.extend(flatten(ele))> >return> temp> >else>:> >return> [test_list]> # Initializing list> test_list>=> [>'gfg'>,>1>, [>5>,>6>,>'geeks'>],>67.4>, [>5>],>'best'>]> # Flatten List to individual elements> # using loop + isinstance()> res>=> flatten(test_list)> > # printing result> print> (>'The List after flattening : '> +> str>(res))> |
>
>
Ausgabe:
The List after flattening : [‘gfg’, 1, 5, 6, ‘geeks’, 67.4, 5, ‘best’]>
Zeitkomplexität: dieser Funktion ist O(n), wobei n die Gesamtzahl der Elemente in der verschachtelten Liste ist.
Raumkomplexität: dieser Funktion ist ebenfalls O(n), da für jeden rekursiven Aufruf eine neue Listentemperatur erstellt wird, um die reduzierte Unterliste zu speichern, und die endgültige reduzierte Liste in der Variablen res gespeichert wird.
4. Verwenden der Methode flatten() zum Reduzieren einer Liste von Listen
Pandas flatten() gibt eine auf eine Dimension reduzierte Kopie des Arrays zurück.
Python3
from> pandas.core.common>import> flatten> l>=> [[>1>,>3>,>'gfg'>], [>4>,>5>], [>6>,>'best'>]]> print>(>list>(flatten(l)))> |
>
>
Ausgabe:
[1, 3, 'gfg', 4, 5, 6, 'best']>
5. U sing chain() mit isinstance() um eine Liste von Listen zu reduzieren
Dies ist eine weitere Möglichkeit, diese Aufgabe zu erfüllen. In diesem, welche Wir führen die Aufgabe der Iteration mit aus Kette() und Suchen nach Listeninstanzen , was mit gemacht wird isinstance() .
Python3
in Ordnung
from> itertools>import> chain> # Initializing list> test_list>=> [>'gfg'>,>1>, [>5>,>6>,>'geeks'>],>67.4>, [>5>],>'best'>]> # Flatten List to individual elements> # using chain() + isinstance()> res>=> list>(chain(>*>[ele>if> isinstance>(ele,>list>)> >else> [ele]>for> ele>in> test_list]))> > # printing result> print> (>'The List after flattening : '> +> str>(res))> |
>
>
Ausgabe :
The List after flattening : [‘gfg’, 1, 5, 6, ‘geeks’, 67.4, 5, ‘best’]>
Zeitkomplexität: An)
Hilfsraum: An)
6. Verwenden der Funktion „reduce()“ zum Reduzieren einer Liste von Listen
Der reduzieren() Funktion ist in der definiert Funktionstools Modul. Es wendet eine Funktion aus zwei Argumenten kontinuierlich auf die gegebene Sequenz an und gibt einen einzelnen Wert zurück.
Python3
from> functools>import> reduce> > # Initializing list> test_list>=> [[>1>,>3>,>'gfg'>], [>4>,>5>], [>6>,>'best'>]]> > # Flatten List to individual elements> # using reduce()> res>=> reduce>(>lambda> x,y: x>+>y, test_list)> > # printing result> print> (>'The List after flattening : '> +> str>(res))> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>
Erstellen von Tabellen in Latex
Ausgabe:
The List after Flattening : [1, 3, 'gfg', 4, 5, 6, 'best']>
Zeitkomplexität: An)
Hilfsraum: An)
7. Verwenden von Groupby zum Reduzieren einer Liste von Listen
Importieren Sie die gruppiere nach Modul von itertools . Definieren Sie eine test_list von Listen. Definieren Sie eine Res-Variable als leere Liste. Verwenden Sie eine verschachtelte for-Schleife, um die Elemente der test_list zu durchlaufen.
Überprüfen Sie für jedes Element, ob es sich um eine Liste handelt oder nicht. Wenn es sich um eine Liste handelt, iterieren Sie über jedes Element der Liste und hängen Sie es an die Variable res an. Wenn es sich nicht um eine Liste handelt, hängen Sie das Element direkt an die res-Variable an.
Drucken Sie die res-Variable als vereinfachte Liste.
Python3
from> itertools>import> groupby> # Initializing list> test_list>=> [[>1>,>3>,>'gfg'>], [>4>,>5>], [>6>,>'best'>]]> # Flatten List to individual elements> # using groupby()> res>=> [i>for> j>in> test_list>for> i>in> (j>if> isinstance>(j,>list>)>else> [j])]> > # printing result> print> (>'The List after flattening : '> +> str>(res))> #This code is contributed by Rayudu.> |
>
>
MySQL nicht gleich
Ausgabe:
The List after flattening : [1, 3, 'gfg', 4, 5, 6, 'best']>
Zeitkomplexität: Die zeitliche Komplexität des Codes beträgt O(n), wobei n die Anzahl der Elemente in der Eingabeliste ist. Die verschachtelte Schleife durchläuft jedes Element der Eingabeliste genau einmal.
Raumkomplexität: Die räumliche Komplexität des Codes beträgt O(n), wobei n die Anzahl der Elemente in der Eingabeliste ist. Die res-Variable wird zum Speichern der abgeflachten Liste verwendet, die höchstens n Elemente enthalten kann.
8. Verwenden von itertools.chain.from_iterable() zum Reduzieren einer Liste von Listen
In diesem Beispiel verwendet der folgende Code die itertools.chain.from_iterable() Methode zum Reduzieren einer verschachtelten Liste.
Lassen Sie uns den Code aufschlüsseln und erklären: Der folgende Code verwendet „itertools.chain.from_iterable()“, um eine verschachtelte Liste („nested_list“) in eine einzelne Liste („flattened_list“) zu reduzieren und gibt dann das Ergebnis aus.
Python3
from> itertools>import> chain> nested_list>=> [[>1>,>2>,>3>], [>4>,>5>], [>6>,>7>,>8>]]> flattened_list>=> list>(chain.from_iterable(nested_list))> print>(flattened_list)> |
>
>
Ausgabe :
[1, 2, 3, 4, 5, 6, 7, 8]>
Zeitkomplexität: An)
Hilfsraum: An)
9. Verwenden der Rekursion zu Reduzieren Sie eine Liste von Listen
In diesem Beispiel definiert der folgende Code eine Funktion flatten_list, die eine verschachtelte Liste als Eingabe verwendet und eine reduzierte Liste mit einzelnen Elementen zurückgibt. Die Abflachung wird mit erreicht Rekursion .
Python3
def> flatten_list(lst):> >flat_list>=> []> >for> item>in> lst:> >if> isinstance>(item,>list>):> >flat_list.extend(flatten_list(item))> >else>:> >flat_list.append(item)> >return> flat_list> nested_list>=> [[>1>,>2>,>3>], [>4>, [>5>,>6>]], [>7>,>8>]]> flattened_list>=> flatten_list(nested_list)> print>(flattened_list)> |
>
>
Ausgabe :
[1, 2, 3, 4, 5, 6, 7, 8]>
Zeitkomplexität: An)
Hilfsraum: An)
Wir haben insgesamt 9 Möglichkeiten zum Reduzieren einer Liste von Listen behandelt. Die Listenreduzierung in Python wird verwendet, um eine Liste verschachtelter Listen in eine einzelne Liste umzuwandeln. Sie können jede der oben genannten Methoden verwenden, um Ihre Liste entsprechend Ihren Anforderungen zu reduzieren.
Ähnliche Lektüre:
- Reduzieren einer verknüpften Liste
- Python-Programm zum Reduzieren einer verknüpften Liste
- Python | Gruppierte Reduzierung der Liste