Slå sammen to lister i Python

La oss se hvordan du setter sammen to lister ved hjelp av forskjellige metoder i Python . Denne operasjonen er nyttig når vi har en rekke lister over elementer som må behandles på lignende måte.

  Input:    test_list1 = [1, 4, 5, 6, 5]  test_list2 = [3, 5, 7, 2, 5]   Output:    [1, 4, 5, 6, 5, 3, 5, 7, 2, 5]   Explanation:   The output list is the list we get from Merging both the input list. 

Python Bli med to lister

Nedenfor er metodene vi vil dekke i denne artikkelen:

Slå sammen to lister i Python ved hjelp av naiv metode

I denne metoden krysser vi den andre listen og fortsetter å legge til elementer i den første listen, slik at den første listen vil ha alle elementene i begge listene og dermed utføre legge til.

Python3




# Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using naive method to concat> for> i> in> test_list2 :> > test_list1.append(i)> # Printing concatenated list> print> (> 'Concatenated list using naive method : '> > +> str> (test_list1))>

Produksjon

Concatenated list using naive method : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Tidskompleksitet: O(n + m), hvor n og m er lengdene til henholdsvis den gitte testliste1 og testliste2.
Hjelpeplass: O(m)

Slå sammen to lister ved å bruke +-operatoren

Den mest konvensjonelle metoden for å utføre listen sammenkobling, bruk av + operatør kan enkelt legge til hele den ene listen bak den andre listen og dermed utføre sammenkobling.

Python3




# Initializing lists> test_list3> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list4> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using + operator to concat> test_list3> => test_list3> +> test_list4> # Printing concatenated list> print> (> 'Concatenated list using + : '> > +> str> (test_list3))>

Produksjon

Concatenated list using + : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Tidskompleksitet: O(n), hvor n er det totale antallet elementer i begge listene, ettersom +-operatoren itererer gjennom alle elementene i begge listene for å sette dem sammen.
Ekstra plass: O(n), hvor n er det totale antallet elementer i begge listene, ettersom en ny liste opprettes for å lagre den sammenkoblede listen.

Slå sammen to lister i Python ved å bruke listeforståelse

Listeforståelse kan også utføre denne oppgaven med listesammenkobling. I dette tilfellet opprettes en ny liste, men denne metoden er et enlinjealternativ til løkkemetoden diskutert ovenfor.

Python3




# Python3 code to demonstrate list> # concatenation using list comprehension> # Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using list comprehension to concat> res_list> => [y> for> x> in> [test_list1, test_list2]> for> y> in> x]> # Printing concatenated list> print> (> 'Concatenated list using list comprehension: '> > +> str> (res_list))>

Produksjon

Concatenated list using list comprehension: [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Tidskompleksitet: O(n + m), hvor n og m er lengden av gitt test_liste1 og test_liste2
Hjelpeplass: O(k), der k er lengden på res_liste.

Slå sammen to lister med utvidelse()

De forlenge() er funksjonen utvidet med lister i Python og kan derfor brukes til å utføre denne oppgaven. Denne funksjonen utfører utvidelsen på stedet av den første listen.

Python3




# Python3 code to demonstrate list> # concatenation using list.extend()> # Initializing lists> test_list3> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list4> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using list.extend() to concat> test_list3.extend(test_list4)> # Printing concatenated list> print> (> 'Concatenated list using list.extend() : '> > +> str> (test_list3))>

Produksjon

Concatenated list using list.extend() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Python Bli med to lister ved å bruke *-operatoren

Ved å bruke *-operatoren er denne metoden et nytt tillegg til listesammenkobling og fungerer bare i Python 3.6+. Ethvert nei. av lister kan settes sammen og returneres i en ny liste ved å bruke denne operatoren.

Python3




# Python3 code to demonstrate list> # concatenation using * operator> # Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using * operator to concat> res_list> => [> *> test_list1,> *> test_list2]> # Printing concatenated list> print> (> 'Concatenated list using * operator : '> > +> str> (res_list))>

Produksjon

Concatenated list using * operator : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Python Bli med to lister ved å bruke itertools.chain()

De itertools.chain() returnerer iterablen etter å ha lenket sine argumenter i ett og krever derfor ikke lagring av den sammenkoblede listen hvis bare den første iterasjonen er nødvendig. Dette er nyttig når den sammenkoblede listen bare må brukes én gang.

Python3




# Python3 code to demonstrate list> # concatenation using itertools.chain()> import> itertools> # Initializing lists> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> # using itertools.chain() to concat> res_list> => list> (itertools.chain(test_list1, test_list2))> # Printing concatenated list> print> (> 'Concatenated list using itertools.chain() : '> > +> str> (res_list))>

Produksjon

Concatenated list using itertools.chain() : [1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Slå sammen to lister ved hjelp av redusere()-funksjonen

Først må vi importere reduseringsfunksjonen fra funksjonsverktøy bibliotek. Initialiser deretter to variabler som inneholder to forskjellige lister. Nå vil vi bruke en annen liste der vi vil lagre alle listene tatt i forrige trinn. Vi må lage en nestet liste. Nå skal vi bruke reduce()-funksjonen og sende den nestede listen som en parameter ved siden av to variabler (hvis vi velger å ha to lister). Og bruk Anonym-funksjonen lambda for å utføre sammenkoblingsoperasjonen og lagre den i en liste.

Python3




from> functools> import> reduce> test_list1> => [> 1> ,> 4> ,> 5> ,> 6> ,> 5> ]> test_list2> => [> 3> ,> 5> ,> 7> ,> 2> ,> 5> ]> nested_list> => [test_list1,test_list2]> print> (> reduce> (> lambda> i,j:i> +> j,nested_list,[]))>

Produksjon

[1, 4, 5, 6, 5, 3, 5, 7, 2, 5] 

Tidskompleksitet: O(n+m), n er lengden på den første listen, og m er lengden på den andre listen.
Hjelpeplass: O(n), n er antall lister som tas i betraktning