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
- Použitie naivnej metódy
- Pomocou + operátor
- Použitím porozumenie zoznamu
- Použitím predĺžiť () metóda
- Použitím * operátor
- Použitím itertools.chain()
- Zlúčiť dva zoznamy pomocou redukcia() funkcie
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