logo

Zlúčiť dva zoznamy v Pythone

Pozrime sa, ako spojiť dva zoznamy pomocou rôznych metód Python . Táto operácia je užitočná, keď máme niekoľko zoznamov prvkov, ktoré je potrebné spracovať podobným spôsobom.

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

Spojenie dvoch zoznamov v Pythone

Nižšie sú uvedené metódy, ktorým sa budeme venovať v tomto článku:



java spánok

Zlúčiť dva zoznamy v Pythone pomocou naivnej metódy

Pri tejto metóde prechádzame druhým zoznamom a pripájame prvky v prvom zozname, takže prvý zoznam bude obsahovať všetky prvky v oboch zoznamoch, a teda vykoná priložiť.

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

>

>

Výkon

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

Časová zložitosť: O(n + m), kde n a m sú dĺžky daného test_list1 a test_list2.
Pomocný priestor: O (m)

Spojte dva zoznamy pomocou operátora +

Najbežnejšou metódou na vykonanie zreťazenia zoznamu je použitie + operátor môže jednoducho pridať celý jeden zoznam za druhý zoznam a teda vykonať zreťazenie.

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

>

>

Výkon

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

Časová zložitosť: O(n), kde n je celkový počet prvkov v oboch zoznamoch, pretože operátor + iteruje cez všetky prvky oboch zoznamov, aby ich zreťazil.
Pomocný priestor: O(n), kde n je celkový počet prvkov v oboch zoznamoch, pretože sa vytvorí nový zoznam na uloženie zreťazeného zoznamu.

Zlúčiť dva zoznamy v Pythone pomocou porozumenia zoznamu

Porozumenie zoznamu môže tiež splniť túto úlohu zreťazenia zoznamov. V tomto prípade sa vytvorí nový zoznam, ale táto metóda je jednoriadkovou alternatívou k metóde slučky diskutovanej vyššie.

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

>

>

Výkon

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

Časová zložitosť: O(n + m), kde n a m sú dĺžka daného test_list1 a test_list2
Pomocný priestor: O(k), kde k je dĺžka zoznamu res_list.

Zlúčiť dva zoznamy pomocou extend()

The predĺžiť () je funkcia rozšírená o zoznamy v Pythone, a preto sa dá použiť na vykonanie tejto úlohy. Táto funkcia vykoná rozšírenie prvého zoznamu na mieste.

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

Fibonacciho sekvencia java

>

>

Výkon

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

Spojenie dvoch zoznamov v Pythone pomocou operátora *

Pomocou operátora * je táto metóda novým prírastkom k zreťazeniu zoznamov a funguje iba v Pythone 3.6+. Akékoľvek nie. zoznamov je možné pomocou tohto operátora spojiť a vrátiť v novom zozname.

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

>

>

Výkon

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

Spojenie dvoch zoznamov v Pythone pomocou itertools.chain()

The itertools.chain() vráti iterovateľné po zreťazení jeho argumentov do jedného, ​​a preto nevyžaduje ukladanie zreťazeného zoznamu, ak sa vyžaduje iba jeho počiatočná iterácia. To je užitočné, keď sa zreťazený zoznam musí použiť iba raz.

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

>

>

Výkon

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

Spojiť dva zoznamy pomocou funkcie znížiť ().

Najprv musíme importovať funkciu redukcie z functools knižnica. Potom inicializujte dve premenné, ktoré obsahujú dva rôzne zoznamy. Teraz použijeme ďalší zoznam, do ktorého uložíme všetky zoznamy urobené v predchádzajúcom kroku. Musíme vytvoriť vnorený zoznam. Teraz použijeme funkciu Zníženie () a prenesieme tento vnorený zoznam ako parameter popri dvoch premenných (ak sa rozhodneme mať dva zoznamy). A použite funkciu Anonymný lambda vykonať operáciu zreťazenia a uložiť ju do zoznamu.

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

>

>

Výkon

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

Časová zložitosť: O(n+m), n je dĺžka prvého zoznamu a m je dĺžka druhého zoznamu.
Pomocný priestor: O(n), n je počet zoznamov, ktoré sa berú do úvahy