logo

Apvienojiet divus sarakstus programmā Python

Apskatīsim, kā savienot divus sarakstus, izmantojot dažādas metodes Python . Šī darbība ir noderīga, ja mums ir vairāki elementu saraksti, kas jāapstrādā līdzīgā veidā.

  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 pievienojas diviem sarakstiem

Tālāk ir norādītas metodes, kuras mēs apskatīsim šajā rakstā:



mergesort java

Apvienojiet divus sarakstus programmā Python izmantojot naivo metodi

Izmantojot šo metodi, mēs šķērsojam otro sarakstu un turpinām pievienot elementus pirmajā sarakstā, lai pirmajā sarakstā būtu visi elementi abos sarakstos un tādējādi tiktu izpildīts pievienot.

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

>

>

Izvade

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

Laika sarežģītība: O(n + m), kur n un m ir attiecīgi dotā testa_saraksta1 un testa_saraksta2 garumi.
Palīgtelpa: O(m)

Savienojiet divus sarakstus, izmantojot operatoru +

Visparastākā metode saraksta savienošanai, izmantošana + operators var viegli pievienot visu sarakstu aiz otra saraksta un tādējādi izpildīt savienošana.

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

>

>

Izvade

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

Laika sarežģītība: O(n), kur n ir kopējais elementu skaits abos sarakstos, jo + operators atkārto visus abu sarakstu elementus, lai tos savienotu.
Palīgtelpa: O(n), kur n ir kopējais elementu skaits abos sarakstos, jo tiek izveidots jauns saraksts, lai saglabātu savienoto sarakstu.

Apvienojiet divus sarakstus programmā Python, izmantojot saraksta izpratni

Saraksta izpratne var arī veikt šo sarakstu savienošanas uzdevumu. Šajā gadījumā tiek izveidots jauns saraksts, taču šī metode ir vienas līnijas alternatīva iepriekš apskatītajai cilpas metodei.

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

>

>

Izvade

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

Laika sarežģītība: O(n + m), kur n un m ir dotā testa_saraksta1 un testa_saraksta2 garums
Palīgtelpa: O(k), kur k ir res_list garums.

Apvienojiet divus sarakstus, izmantojot paplašinājumu ()

The paplašināt () ir funkcija, ko Python paplašina saraksti, un tāpēc to var izmantot šī uzdevuma veikšanai. Šī funkcija veic pirmā saraksta paplašinājumu vietā.

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

>

>

Izvade

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

Python savieno divus sarakstus, izmantojot operatoru *

Izmantojot operatoru *, šī metode ir jauns papildinājums sarakstu savienošanai un darbojas tikai Python 3.6+ versijā. Jebkurš nr. sarakstus var savienot un atgriezt jaunā sarakstā, izmantojot šo operatoru.

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

>

>

Izvade

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

Python savieno divus sarakstus, izmantojot itertools.chain()

The itertools.chain() atgriež iterējamo pēc tā argumentu ķēdes savienošanas vienā, un tāpēc nav nepieciešams saglabāt sasaistīto sarakstu, ja ir nepieciešama tikai tā sākotnējā iterācija. Tas ir noderīgi, ja savienotais saraksts ir jāizmanto tikai vienu reizi.

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

>

hashtable java
>

Izvade

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

Savienojiet divus sarakstus izmantojot funkciju samazināt().

Pirmkārt, mums ir jāimportē samazināšanas funkcija no funkcionālie rīki bibliotēka. Pēc tam inicializējiet divus mainīgos, kuros ir divi dažādi saraksti. Tagad mēs izmantosim citu sarakstu, kurā saglabāsim visus iepriekšējā solī uzņemtos sarakstus. Mums ir jāizveido ligzdots saraksts. Tagad mēs izmantosim funkciju samazināt () un nodosim šo ligzdoto sarakstu kā parametru līdzās diviem mainīgajiem (ja izvēlamies divus sarakstus). Un izmantojiet funkciju Anonymous lambda lai veiktu savienošanas darbību un saglabātu to sarakstā.

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

>

>

Izvade

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

Laika sarežģītība: O(n+m), n ir pirmā saraksta garums, un m ir otrā saraksta garums.
Palīgtelpa: O(n), n ir ņemto sarakstu skaits