Cómo concatenar dos o múltiples listas en Python
-
+
para concatenar dos listas en Python -
+=
para concatenar dos listas en el lugar en Python -
El método
itertools.chain
concatena dos listas en Python -
extend()
método para concatenar listas en Python -
Método de desempaquetado
a, b
en la concatenación de listas en Python - Conclusión
Una lista en Python es una estructura de datos que contiene una colección ordenada de elementos.
Una operación para pegar dos listas se llama concentración. Se pueden concatenar dos listas en Python ya sea in-place o out-of-place.
Supongamos que tenemos dos listas para ser concatenadas,
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
Podríamos tener múltiples métodos para concatenarlas, pero difieren en el rendimiento cuando la longitud aumenta o el número de listas concatenadas aumenta.
Presentaremos estos diferentes métodos y le daremos la comparación de rendimiento.
+
para concatenar dos listas en Python
El operador +
podría concatenar dos listas y devolver una nueva lista.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = list1 + list2
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]
+=
para concatenar dos listas en el lugar en Python
+=
es similar al método anterior, pero cambiará los datos de la primera lista en su lugar.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1 += list2
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]
El método itertools.chain
concatena dos listas en Python
chain
del módulo itertools
trata las secuencias consecutivas como una sola secuencia,
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> import itertools
>>> result = list(itertools.chain(list1, list2))
[1, 2, 3, 4, 5, 6, 7, 8]
itertools.chain
tiene un constructor alternativo - intertools.chain.from_iterable()
. Tiene un único argumento iterable cuyas entradas se evalúan perezosamente.extend()
método para concatenar listas en Python
El método list extend
extiende la lista añadiendo elementos del iterable.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> list1.extend(list2)
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8]
También cambia los datos de la lista existente en lugar de devolver una nueva lista.
Método de desempaquetado a, b
en la concatenación de listas en Python
Desembalajes adicionales como *
para el operador de desembalaje iterable y **
para el operador de desembalaje de diccionario se extienden desde Python 3.5 como se explica en PEP-0448.
>>> list1 = [1, 2, 3, 4]
>>> list2 = [5, 6, 7, 8]
>>> result = [*list1, list2]
>>> result
[1, 2, 3, 4, 5, 6, 7, 8]
Este método no puede aplicarse al caso de N listas a menos que quiera desempaquetar cada lista manualmente.
>>> A = [1,2,3]
>>> B = [4,5,6]
>>> C = [7,8,9]
>>> [*t for t in [A,B,C]]
SyntaxError: iterable unpacking cannot be used in comprehension
Conclusión
Versión | ¿En el lugar? | |
---|---|---|
a + b |
- | No |
list(intertools.chain(a,b)) |
>=2.3 | No |
[*a, *b] |
>=3.5 | No |
a += b |
- | Sí |
a.extend(b) |
- | Sí |
Utilizamos el módulo perfplot
para comapare el rendimiento de los métodos anteriores.
Como se muestra en el gráfico, los métodos a.extend(b)
y a+b
son casi iguales en cuanto al rendimiento y los mejores entre todos los métodos. El método list(chain(a,b))
tiene el peor rendimiento.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHubArtículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python