Python flat liste over lister

Python flat liste over lister
Listen er den mest brukte strukturen i Python. En todimensjonal liste er også anerkjent som en liste over lister. Å transformere en 2D-gruppe til en endimensjonal matrise er kjent som utflating. Flating av en liste over lister trenger å endre en todimensjonal liste i en endimensjonal liste ved å Unnesting hvert listeelement som er lagret i listen over lister. Du kan utføre utflatingsprosessen ved hjelp av nestet for løkker, listeforståelser og Numpy -metoden ved å importere Python -biblioteker. Flating av en liste betyr å eliminere en dimensjon fra en Python -liste. En liste har mange dimensjoner. Det betyr at du har en liste og sublister. Kom og la oss forklare det ved hjelp av eksempler.

Eksempel 1:

Vår første illustrasjon er en grunnleggende tilnærming til å finne en flat liste ved å velge hvert element fra listen over lister og legge den til i en endimensjonal liste. Koden er innebygd og fungerer for både likeverdige og ulik lister over lister. Vi implementerer "Flat en liste over lister" ved å bruke Spyder -kompilatoren i Windows 10.

Vi oppretter en ny fil. Deretter definerer du en funksjon som tar en 2D -liste som et argument og initialiserer en tom liste kalt F_1. Deretter bruker vi en nestet sløyfefunksjon og if-ests-uttalelser. Den nestede sløyfen krysser over den eksterne listen. Hvis funksjonen sjekker tilstanden hvis den oppfyller den gitte tilstanden og elementet samsvarer med listetypen. Deretter krysser den gjennom underlisten og kaller vedleggsfunksjonen, som tar "jeg" som en parameter; Ellers flytter den til ellers uttalelse. Deretter oppretter og initialiserer vi listen over heltall. Bruk deretter utskriftsfunksjonen til å skrive ut originale listeverdier. Vi kan deretter skrive ut den flate listen over lister:

def f_l (_2d_list):
f_l = []
for e i _2d_list:
Hvis type (e) er liste:
for jeg i e:
f_l.vedlegg (i)
ellers:
f_l.vedlegg (e)
Returner F_L
n_l = [[11, 12, 13, 14], [15, 16, 17], [18, 19, 20]]
trykk ('Den originale listen er her', N_L)
Print ('Den transformerte flatlisten er her', F_L (N_L))

Lagre og utfør kodeprogrammet, og den transformerte flatlisten vises på konsollskjermen.

Eksempel 2:

Den andre illustrasjonen vår gir en godt designet, men mindre instinktiv løsning for å lage en flat liste basert på den todimensjonale listen. Vi bruker listeforståelsesmetoden for å flate lister med lister ved å bruke Spyder -kompilatoren i Windows 10. Vi bruker samme kildekodefil og oppretter to lister. Vi initialiserer en liste kjent som R_1.

Deretter bruker vi en syntaks som tar et element fra sublistene. Vi kan bruke to utskriftsfunksjoner. Den første viser den originale listen, og den andre viser den resulterende flatede listen over lister:

r_l = [[13, 23, 33, 43], [53, 63, 73], [83, 93]]
f_l = [element for sublist i r_l for vare i sublist]
print ('Sjekk den originale listen', R_L)
trykk ('Kontroller nå utdataene', F_L)

Igjen, lagre (CTRL+S) og utfør programkoden, og se deretter flate -listen på konsollskjermen:

Eksempel 3:

I vår tredje illustrasjon bruker vi Numpy -metoden, som er enkel og effektiv. Numpy er en numerisk Python -modul som utfører matematiske operasjoner på en matrise. Python concatenate -funksjon bruker en "+" -operatør som hjelper deg å slå sammen to eller flere Python -strenger. "+" -Operatøren vises mellom de to strengene du ønsker å kombinere. La oss sjekke hvordan det fungerer. Vi bruker den samme kodefilen og importerer en numpy modul.

Vi kan opprette og initialisere en liste over sublister med heltallverdier, strenger, tegn og boolsk. Etter dette kaller vi Numpy.concatenate () -funksjon og tilordne den til en variabel. Funksjonen fusjonerer alle elementene i listen. Til slutt bruker vi en utskriftsuttalelse som viser concatenate -utgangen på konsollskjermen:

Importer numpy
L = [[19, 29, 39], [True, False], [0.1, 0.3, 0.0], ['x', 'y', "]]
JL = liste (numpy.Concatenate (L).flat)
trykk (JL)

Igjen, trykk CTRL+S for å lagre filen og slå deretter F5 for å utføre programmet og sjekke utdataene på konsollskjermen:

Konklusjon:

I denne opplæringen har vi lagt til en omfattende liste over metoder for å fullføre flating av en liste over lister. Numpy og forståelsesmetoden er veldig enkel og enkel. Du trenger ikke å bruke for mange kodelinjer. Men den nestede sløyfemetoden er litt vanskelig sammenlignet med andre. Vi håper du fant denne artikkelen nyttig. Takk for at du leser og sjekk ut andre informative artikler på Linux Hint.