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:
- Bruker naiv metode
- Bruker + operatør
- Ved hjelp av listeforståelse
- Ved hjelp av forlenge() metode
- Ved hjelp av *operatør
- Ved hjelp av itertools.chain()
- Slå sammen to Liste ved hjelp av redusere() funksjon
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