logo

Združi dva seznama v Pythonu

Poglejmo, kako z različnimi metodami združiti dva seznama Python . Ta operacija je uporabna, ko imamo več seznamov elementov, ki jih je treba obdelati na podoben način.

  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 Join Two Lists

Spodaj so metode, ki jih bomo obravnavali v tem članku:



izbriši datoteko v javi

Združite dva seznama v Pythonu z uporabo naivne metode

Pri tej metodi prečkamo drugi seznam in nadaljujemo z dodajanjem elementov na prvi seznam, tako da bi prvi seznam imel vse elemente na obeh seznamih in bi tako izvedel priložiti.

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))>

>

>

Izhod

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

Časovna zapletenost: O(n + m), kjer sta n in m dolžini podanega testnega_lista1 oziroma testnega_lista2.
Pomožni prostor: O(m)

Povežite dva seznama z uporabo operatorja +

Najbolj običajna metoda za izvedbo veriženja seznama je uporaba + operater lahko preprosto dodate celoten seznam za drugim seznamom in tako izvedete veriženje.

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))>

>

>

Izhod

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

Časovna zahtevnost: O(n), kjer je n skupno število elementov na obeh seznamih, saj operater + ponovi vse elemente obeh seznamov, da jih združi.
Pomožni prostor: O(n), kjer je n skupno število elementov na obeh seznamih, saj se ustvari nov seznam za shranjevanje povezanega seznama.

Spojite dva seznama v Pythonu z uporabo razumevanja seznamov

Razumevanje seznama lahko opravi tudi to nalogo veriženja seznamov. V tem primeru je ustvarjen nov seznam, vendar je ta metoda enovrstična alternativa zgoraj obravnavani metodi zanke.

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))>

>

>

Izhod

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

Časovna zapletenost: O(n + m), kjer sta n in m dolžina podanega seznama_testov1 in seznama_testov2
Pomožni prostor: O(k), kjer je k dolžina res_list.

Združi dva seznama z uporabo extend()

The razširi () je funkcija, razširjena s seznami v Pythonu in jo je zato mogoče uporabiti za izvajanje te naloge. Ta funkcija izvede razširitev prvega seznama na mestu.

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))>

>

>

Izhod

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

Python Združi dva seznama z uporabo * operatorja

Z uporabo operatorja * je ta metoda nov dodatek k veriženju seznamov in deluje samo v Pythonu 3.6+. Vsak št. seznamov je mogoče združiti in vrniti v nov seznam s tem operatorjem.

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))>

abeceda kot številke

>

>

Izhod

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

Python Združi dva seznama z uporabo itertools.chain()

The itertools.chain() vrne iterable po veriženju njegovih argumentov v enega in zato ne zahteva shranjevanja povezanega seznama, če je zahtevana le njegova začetna ponovitev. To je uporabno, ko je treba povezani seznam uporabiti samo enkrat.

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))>

>

>

Izhod

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

Povežite dva seznama z uporabo funkcije reduce().

Najprej moramo uvoziti funkcijo redukcije iz functools knjižnica. Nato inicializirajte dve spremenljivki, ki vsebujeta dva različna seznama. Zdaj bomo uporabili drug seznam, v katerega bomo shranili vse sezname, narejene v prejšnjem koraku. Oblikovati moramo ugnezdeni seznam. Zdaj bomo uporabili funkcijo reduce() in podali ta ugnezdeni seznam kot parameter poleg dveh spremenljivk (če se odločimo za dva seznama). In uporabite funkcijo Anonymous lambda da izvedete operacijo veriženja in jo shranite na seznam.

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,[]))>

>

>

Izhod

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

Časovna zapletenost: O(n+m), n je dolžina prvega seznama in m je dolžina drugega seznama.
Pomožni prostor: O(n), n je število upoštevanih seznamov