logo

Combina dues llistes a Python

Vegem com concatenar dues llistes mitjançant mètodes diferents Python . Aquesta operació és útil quan tenim una sèrie de llistes d'elements que cal processar de manera similar.

  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 Uniu dues llistes

A continuació es mostren els mètodes que tractarem en aquest article:



retall de cadena javascript

Combina dues llistes a Python utilitzant el mètode naïf

En aquest mètode, recorrem la segona llista i seguim afegint elements a la primera, de manera que la primera llista tingués tots els elements de les dues llistes i, per tant, realitzaria el adjuntar.

Python 3








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

>

>

Sortida

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

Complexitat temporal: O(n + m), on n i m són les longituds dels test_list1 i test_list2 donats respectivament.
Espai auxiliar: O(m)

Concatena dues llistes utilitzant l'operador +

El mètode més convencional per realitzar la concatenació de la llista, l'ús de + operador pot afegir fàcilment tota una llista darrere de l'altra llista i, per tant, realitzar el concatenació.

Python 3




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

>

>

Sortida

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

Complexitat temporal: O(n), on n és el nombre total d'elements en ambdues llistes, ja que l'operador + itera tots els elements d'ambdues llistes per concatenar-los.
Espai auxiliar: O(n), on n és el nombre total d'elements en ambdues llistes, ja que es crea una llista nova per emmagatzemar la llista concatenada.

Combina dues llistes a Python mitjançant la comprensió de llistes

Comprensió de llista també pot realitzar aquesta tasca de concatenació de llistes. En aquest cas, es crea una llista nova, però aquest mètode és una alternativa d'una línia al mètode de bucle comentat anteriorment.

Python 3




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

>

>

Sortida

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

Complexitat temporal: O(n + m), on n i m són la longitud de test_list1 i test_list2 donats
Espai auxiliar: O(k), on k és la longitud de res_list.

Combina dues llistes utilitzant extend()

El estendre () és la funció ampliada per llistes a Python i, per tant, es pot utilitzar per realitzar aquesta tasca. Aquesta funció realitza l'extensió in situ de la primera llista.

Python 3




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

>

>

Sortida

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

Python Uniu dues llistes mitjançant l'operador *

Utilitzant l'operador *, aquest mètode és una nova incorporació a la concatenació de llistes i només funciona a Python 3.6+. Qualsevol no. de llistes es poden concatenar i tornar en una llista nova utilitzant aquest operador.

Python 3




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

>

>

Sortida

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

Python Uniu dues llistes mitjançant itertools.chain()

El itertools.chain() retorna l'iterable després d'encadenar els seus arguments en un i, per tant, no requereix emmagatzemar la llista concatenada si només cal la seva iteració inicial. Això és útil quan la llista concatenada s'ha d'utilitzar només una vegada.

Python 3




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

>

>

Sortida

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

Concatenar dues llistes utilitzant la funció reduce().

En primer lloc, hem d'importar la funció de reducció de functools biblioteca. A continuació, inicialitzeu dues variables que contenen dues llistes diferents. Ara farem servir una altra llista en la qual emmagatzemarem totes les llistes fetes al pas anterior. Hem de formar una llista imbricada. Ara utilitzarem la funció reduce() i passarem aquesta llista imbricada com a paràmetre al costat de dues variables (si optem per tenir dues llistes). I utilitzeu la funció Anònima lambda per fer l'operació de concatenació i emmagatzemar-la en una llista.

Python 3




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

>

>

Sortida

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

Complexitat temporal: O(n+m), n és la longitud de la primera llista i m és la longitud de la segona llista.
Espai auxiliar: O(n), n és el nombre de llistes que es tenen en compte

java és igual