logo

Unisci due elenchi in Python

Vediamo come concatenare due liste utilizzando metodi diversi in Pitone . Questa operazione è utile quando abbiamo più liste di elementi che necessitano di essere elaborati in maniera simile.

  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 Unisci due elenchi

Di seguito sono riportati i metodi che tratteremo in questo articolo:

javafx

Unisci due elenchi in Python utilizzando il metodo ingenuo

In questo metodo, attraversiamo il secondo elenco e continuiamo ad aggiungere elementi nel primo elenco, in modo che il primo elenco contenga tutti gli elementi in entrambi gli elenchi e quindi esegua l'operazione aggiungere.



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

>

>

Produzione

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

Complessità temporale: O(n + m), dove n e m sono rispettivamente la lunghezza dei test_list1 e test_list2 specificati.
Spazio ausiliario: O(m)

Concatena due elenchi utilizzando l'operatore +

Il metodo più convenzionale per eseguire la concatenazione di elenchi, l'utilizzo di + operatore può facilmente aggiungere l'intero elenco dietro l'altro elenco e quindi eseguire l'operazione concatenazione.

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

>

>

Produzione

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

Complessità temporale: O(n), dove n è il numero totale di elementi in entrambi gli elenchi, poiché l'operatore + scorre tutti gli elementi di entrambi gli elenchi per concatenarli.
Spazio ausiliario: O(n), dove n è il numero totale di elementi in entrambi gli elenchi, poiché viene creato un nuovo elenco per memorizzare l'elenco concatenato.

Unisci due elenchi in Python utilizzando la comprensione delle liste

Comprensione degli elenchi può anche svolgere questo compito di concatenazione di elenchi. In questo caso, viene creato un nuovo elenco, ma questo metodo è un'alternativa a una riga al metodo loop discusso in precedenza.

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

>

>

Produzione

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

Complessità temporale: O(n + m), dove n e m sono la lunghezza di determinati test_list1 e test_list2
Spazio ausiliario: O(k), dove k è la lunghezza di res_list.

Unisci due elenchi usando extend()

IL estendere() è la funzione estesa dagli elenchi in Python e quindi può essere utilizzata per eseguire questa attività. Questa funzione esegue l'estensione sul posto del primo elenco.

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

>

stringa su intero in Java
>

Produzione

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

Python Unisci due elenchi utilizzando l'operatore *

Utilizzando l'operatore *, questo metodo è una nuova aggiunta alla concatenazione di elenchi e funziona solo in Python 3.6+. Qualsiasi n. di elenchi possono essere concatenati e restituiti in un nuovo elenco utilizzando questo operatore.

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

>

>

Produzione

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

Python Unisci due elenchi utilizzando itertools.chain()

IL itertools.catena() restituisce l'iterabile dopo aver concatenato i suoi argomenti in uno e quindi non richiede la memorizzazione dell'elenco concatenato se è richiesta solo la sua iterazione iniziale. Ciò è utile quando l'elenco concatenato deve essere utilizzato una sola volta.

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

>

>

Produzione

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

Concatena due elenchi utilizzando la funzione reduce()

Per prima cosa dobbiamo importare la funzione di riduzione da funtools biblioteca. Quindi inizializza due variabili che contengono due elenchi diversi. Ora utilizzeremo un altro elenco in cui memorizzeremo tutti gli elenchi presi nel passaggio precedente. Dobbiamo formare un elenco nidificato. Ora utilizzeremo la funzione reduce() e passeremo l'elenco nidificato come parametro insieme a due variabili (se scegliamo di avere due elenchi). E usa la funzione Anonimo lambda per eseguire l'operazione di concatenazione e memorizzarla in un elenco.

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

>

>

Produzione

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

Complessità temporale: O(n+m), n è la lunghezza del primo elenco e m è la lunghezza del secondo elenco.
Spazio ausiliario: O(n), n è il numero di liste prese in considerazione