Flat listen over listen i Python

Flat listen over listen i Python
I denne artikkelen vil vi se hvordan vi kan flate listen over listen på forskjellige måter. Før vi fortsetter, må vi vite om forskjellen mellom grunt flating og dyp flating.

Grunt utflating: Dette betyr bare flating av listen til ett dybdivå.

Dyp flating: Dette betyr å flate listen til ethvert dybdivå.

Temaene som vi skal diskutere i denne artikkelen er som nedenfor:

  • Metode 1: Bruker for loop
  • Metode 2: Bruke en listeforståelse
  • Metode 3: Bruke flat () -metode
  • Metode 4: Bruke dypflat () -metode
  • Metode 5: Bruke pandas flat
  • Metode 6: Bruke matplotlib flat
  • Metode 7: Bruke Unipath Flaten Method
  • Metode 8: Bruke Setuptools Flaten Method
  • Metode 9: Bruke Iterertools.kjedemetode
  • Metode 10: Bruke Numpy Ravel -metode
  • Metode 11: Bruke numpy omformet metode
  • Metode 12: Bruke Numpy Flaten Method
  • Metode 13: Bruke Numpy.Concatenate -metode
  • Metode 14: Bruke Numpy Flat Method

Metode 1: Bruker for loop

I denne metoden vil vi bruke for-loop, som er veldig vanlig på hvert programmeringsspråk. Vi itererer hvert element på listen og iterer deretter det elementet ytterligere, som vist i programmet nedenfor.

LST = [[30,7], [8,9], [30,7], [8,9]]
flatten_list = []
for jeg i LST:
for vare i i:
flatte_list.vedlegg (vare)
trykk ("Liste før flating", LST)
Print ("Flated List:", Flatten_List)

Produksjon:

Liste før flating [[30, 7], [8, 9], [30, 7], [8, 9]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9]

Linje 1: Vi opprettet en liste over lister.

Linje 3 til 5: I denne linjen kjører vi en nestet for sløyfe. Det ytre for loop er for hovedlisten, og det indre for loop er for elementene. Hvis du ser denne nestede sløyfen, vil du finne ut at hvert element fra underelementlisten ble trukket ut og legger til den nye listen (flatten_list). På denne måten er hvert element i underlisten nå atskilt.

Linje 6 til 7: Disse linjene som viser den originale listen før og etter flating av listen.

Metode 2: Bruke listeforståelse

Listeforståelsen er en avansert metode for ovennevnte for loop der vi skriver alt i en enkelt linje.

LST = [[30,7], [8,9], [30,7], [8,9]]
trykk ("Liste før flating", LST)
skriv ut ("liste etter flating", [element for i i lst for varen i i])

Produksjon:

Liste før flating [[30, 7], [8, 9], [30, 7], [8, 9]]
Liste etter utflating [30, 7, 8, 9, 30, 7, 8, 9]

Linje 1: Vi opprettet en liste over listen.
Linje 3: Denne linjen kjører to løkker i en enkelt linje for å flate listen.

Metode 3: Bruke flat () -metode

En annen metode er å bruke bibliotekets flat () som vist i programmet gitt nedenfor. Men flatmetoden vil bare fungere til ett nivå på den nestede listen; Hvis det er dypt nestede lister, vil den ikke flate listen. Både enkelt nestede og dypt nestede programeksempler er gitt nedenfor.

fra iterasjon_utiliteter importerer flat
LST = [[30,7], [8,9], [30,7], [8,9]]
trykk (liste (flat (LST)))

Produksjon:

[30, 7, 8, 9, 30, 7, 8, 9]

Linje 3: Vi kaller metoden flater og gir listen inn i det som et argument. Ovennevnte utdata viser at listen over lister nå er flatet.

Nå skal vi se en dypt nestet liste for flatmetoden.

fra iterasjon_utiliteter importerer flat
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk (liste (flat (LST)))

Produksjon:

[30, 7, 8, 9, 30, 7, 8, 9, [2]]]

Linje 2: Vi opprettet en nestet liste og la også til et annet element [[2]] som er dypt nestet.

Linje 3: Vi kaller metoden flater og gir listen inn i det som et argument. Ovennevnte utgang viser at det ikke gjøres å flate den dypt nestede listen fullt ut fordi elementet [2] fremdeles er inne i en liste.

Metode 4: Bruke DeepFlatten () -metoden

Den andre metoden er den dypflate () som kan flate den dypt nestede listen, som ikke gjøres ved flatmetoden som vi har sett i eksemplet ovenfor.

Fra iterasjon_utiliteter importerer dypflat
LST = [[30,7], [8,9], [30,7], [8,9], [[200]]]
trykk ("Liste LST før flating", LST)
flatten_lst = liste (DeepFlatten (LST))
print ("Liste lst etter flating", flatte_lst)

Produksjon:

Liste over LST før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[200]]]
Liste over LST etter utflating [30, 7, 8, 9, 30, 7, 8, 9, 200]

Linje 1: Vi importerer den dype flatt metoden.

Linje 4: Vi kaller metoden dypflatt og gir den dypt nestede listen inn i den som et argument. Ovennevnte utgang viser at vår dypt nestede liste nå er flatet.

Metode 5: Bruke pandas flat () -metode

Denne metoden gjør flatlisten selv om listen er dypt nestet.

fra Pandas.kjerne.Vanlig importflat
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9, 2]

Linje 4: Vi kaller metoden flater og gir den dypt nestede listen inn i den som et argument. Ovennevnte utgang viser at vår dypt nestede liste nå er flatet.

Metode 6: Bruke MatplotLib flat () -metode

Denne metoden gjør flatlisten selv om listen er dypt nestet.

fra matplotlib.CBook Import Flaten
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9, 2]

Linje 4: Vi kaller metoden flater og gir den dypt nestede listen inn i den som et argument. Ovennevnte utgang viser at vår dypt nestede liste nå er flatet.

Metode 7: Bruke UNIPATH Flatten () -metoden

Denne metoden gjør flatlisten selv om listen er dypt nestet.

Importer Unipath
Fra Unipath.Sti import flat
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9, 2]

Linje 5: Vi kaller metoden flater og gir den dypt nestede listen inn i den som et argument. Ovennevnte utgang viser at vår dypt nestede liste nå er flatet.

Metode 8: Bruke SetUptools Flatten () -metode

Denne metoden gjør flatelisten til bare ett nivå.

Fra Setuptools.Navneområder importerer flat
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9, [2]]

Linje 2: Vi opprettet en nestet liste og la også til et annet element [[2]] som er dypt nestet.

Linje 4: Vi kaller metoden flater og gir listen inn i det som et argument. Ovennevnte utgang viser at det ikke gjøres å flate den dypt nestede listen fullt ut fordi elementet [2] fremdeles er inne i en liste.

Metode 9: Bruke Iterertools.kjedemetode

For å pakke ut listen over lister, kan vi også bruke Iterertools.kjedemetode. Denne metoden har videre to måter å flate listen over lister. Begge metodene er gitt nedenfor. Disse metodene faller også listen over liste til bare ett nivå.

Bruke Iterertools.kjede.fra_iterable

Importer iterertools
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk ("Liste LST før flating", LST)
flatten_lst = liste ((iterertools.kjede.FRA_ITERABLE (LST)))
print ("Liste lst etter flating", flatte_lst)

Produksjon:

Liste over LST før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste over LST etter utflating [30, 7, 8, 9, 30, 7, 8, 9, [2]]

Linje 2: Vi opprettet en nestet liste og la også til et annet element [[2]] som er dypt nestet.

Linje 4: Vi kaller metoden iterertools.kjede.fra_iterable () og gi listen inn i det som et argument. Ovennevnte utgang viser at det ikke gjøres for å flate den dypt nestede listen fullt ut fordi elementet [2] fremdeles er inne i en liste.

Bruke * operatøren

Importer iterertools
LST = [[30,7], [8,9], [30,7], [8,9], [[2]]]
trykk ("Liste LST før flating", LST)
flatten_lst = liste ((iterertools.kjede (*lst))))
print ("Liste lst etter flating", flatte_lst)

Produksjon:

Liste over LST før flating [[30, 7], [8, 9], [30, 7], [8, 9], [[2]]]
Liste over LST etter utflating [30, 7, 8, 9, 30, 7, 8, 9, [2]]

Metode 10: Bruke Numpy.Ravel () -metode

Den andre metoden er numpy.Ravel som også flater den nestede listen. Men denne metoden flater ut til ett nivå av det nestede.

Importer numpy som NP
LST = NP.Array ([[30,7], [8,9], [30,7], [8,9]])
flatte_lst = lst.Ravel ()
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30 7]
[8 9]
[30 7]
[8 9]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9]

Linje 3: Vi kaller metoden numpy ravel. Ovennevnte utgang viser at vår nestede liste -matrise nå er flatet.

Metode 11: Bruke Numpy Reshape () -metoden

Den andre metoden er numpy omformet, som også flater den nestede listen. Men denne metoden flater ut til ett nivå av det nestede.

Importer numpy som NP
LST = NP.Array ([[30,7], [8,9], [30,7], [8,9]])
flatte_lst = lst.omforme (-1)
trykk ("Liste før flating", LST)
print ("Flated List:", list (flat (lst))) liste før flating [[30 7]
[8 9]
[30 7]
[8 9]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9]

Linje 3: Vi kaller metoden omformet (-1). Ovennevnte utgang viser at vår nestede liste -matrise nå er flatet.

Metode 12: Bruke Numpy Flaten () -metoden

Den andre metoden er numpy flat (), som også flater den nestede listen. Men denne metoden flater ut til ett nivå av det nestede.

Importer numpy som NP
LST = NP.Array ([[30,7], [8,9], [30,7], [8,9]])
flatte_lst = lst.flat ()
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))


Produksjon:

Liste før flating [[30 7]
[8 9]
[30 7]
[8 9]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9]

Linje 5: Vi kaller metoden flat. Ovennevnte utgang viser at vår nestede liste -matrise nå er flatet.

Metode 13: Bruke Numpy.Concatenate () -metode

Den andre metoden er numpy.concatenate (), som også flater den nestede listen. Men denne metoden flater ut til ett nivå av det nestede.

Importer numpy som NP
LST = NP.Array ([[30,7], [8,9], [30,7], [8,9]])
flatten_lst = liste (np.Concatenate (LST))
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30 7]
[8 9]
[30 7]
[8 9]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9]

Linje 3: Vi kaller metoden numpy.concatenate () og pass den nestede liste -matrisen inn i det som et argument. Ovennevnte utgang viser at vår nestede liste -matrise nå er flatet.

Metode 14: Bruke Numpy Flat -metoden

Den andre metoden er numpy flat som også flater den nestede listen. Men denne metoden flater ut til ett nivå av det nestede.

Importer numpy som NP
LST = NP.Array ([[30,7], [8,9], [30,7], [8,9]])
flatten_lst = liste (LST.flat)
trykk ("Liste før flating", LST)
Print ("Flated List:", List (Flaten (LST)))

Produksjon:

Liste før flating [[30 7]
[8 9]
[30 7]
[8 9]]
Flatet liste: [30, 7, 8, 9, 30, 7, 8, 9]

Linje 3: Vi kaller metoden flat, og output ovenfor viser at vår nestede liste -matrise nå er flatet.

Konklusjon:

I denne bloggen har vi vist deg forskjellige metoder som vi kan bruke for å flate listen over lister. Alle de ovennevnte metodene fungerer perfekt for det ene nivået på den nestede listen. Men hvis det er dypt nestede lister, fungerer noen av de ovennevnte metodene perfekt. Så det er opp til deg, og i henhold til programkravene dine hvilken metode du vil bruke.

Koden for denne artikkelen er også tilgjengelig på GitHub -lenken:
https: // github.com/shekharpandey89/flate-the-list-of-list