logo

Fusionar dos listas en Python

Veamos cómo concatenar dos listas usando diferentes métodos en Pitón . Esta operación es útil cuando tenemos varias listas de elementos que deben procesarse 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 une dos listas

A continuación se detallan los métodos que cubriremos en este artículo:



funciones en c

Fusionar dos listas en Python usando el método ingenuo

En este método, recorremos la segunda lista y seguimos agregando elementos en la primera lista, de modo que la primera lista tenga todos los elementos en ambas listas y, por lo tanto, realice el adjuntar.

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

>

>

Producción

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

Complejidad del tiempo: O (n + m), donde n y m son las longitudes de test_list1 y test_list2 dados respectivamente.
Espacio Auxiliar: O(m)

Concatenar dos listas usando el operador +

El método más convencional para realizar la concatenación de listas, el uso de + operador puede agregar fácilmente la totalidad de una lista detrás de la otra lista y, por lo tanto, realizar la concatenación.

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

>

>

Producción

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

Complejidad del tiempo: O(n), donde n es el número total de elementos en ambas listas, ya que el operador + recorre todos los elementos de ambas listas para concatenarlos.
Espacio auxiliar: O(n), donde n es el número total de elementos en ambas listas, ya que se crea una nueva lista para almacenar la lista concatenada.

Fusionar dos listas en Python usando la comprensión de listas

Comprensión de listas También puede realizar esta tarea de concatenación de listas. En este caso, se crea una nueva lista, pero este método es una alternativa de una sola línea al método de bucle discutido anteriormente.

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

>

>

Producción

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

Complejidad del tiempo: O (n + m), donde n y m son la longitud de test_list1 y test_list2 dados
Espacio Auxiliar: O(k), donde k es la longitud de res_list.

Fusionar dos listas usando extend()

El extender() es la función extendida por listas en Python y, por lo tanto, puede usarse para realizar esta tarea. Esta función realiza la extensión in situ de la primera lista.

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

>

>

Producción

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

Python une dos listas usando el operador *

Al utilizar el operador *, este método es una nueva incorporación a la concatenación de listas y solo funciona en Python 3.6+. Cualquier no. de listas se pueden concatenar y devolver en una nueva lista usando este operador.

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

arquitectura Linux

>

>

Producción

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

Python une dos listas usando itertools.chain()

El itertools.cadena() devuelve el iterable después de encadenar sus argumentos en uno y, por lo tanto, no requiere almacenar la lista concatenada si solo se requiere su iteración inicial. Esto es útil cuando la lista concatenada debe usarse solo una vez.

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

>

>

Producción

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

Concatenar dos listas usando la función reducir()

En primer lugar necesitamos importar la función de reducción desde herramientas funcionales biblioteca. Luego inicialice dos variables que contengan dos listas diferentes. Ahora usaremos otra lista en la que almacenaremos todas las listas tomadas en el paso anterior. Necesitamos formar una lista anidada. Ahora usaremos la función reducir() y pasaremos esa lista anidada como parámetro junto con dos variables (si elegimos tener dos listas). Y usa la función anónima. lambda para realizar la operación de concatenación y almacenarla en una lista.

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

>

>

Producción

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

Complejidad del tiempo: O (n + m), n es la longitud de la primera lista y m es la longitud de la segunda lista.
Espacio Auxiliar: O(n), n es el número de listas tomadas en consideración