Cómo fusionar dos listas en Python (concatenar y extender)

Conozca las mejores formas de fusionar y combinar dos listas en Python. Compare el operador más, el método de extensión, el desempaquetado de listas y las opciones de cadena.

Pruebe esta solución en el Editor

Descripción general

Combinar conjuntos de datos de listas es una operación frecuente al agregar resultados, procesar lotes de datos o agregar elementos a una colección. Python proporciona varias formas de fusionar listas, dependiendo de si desea modificar una lista en el lugar o crear una lista nueva.

Para crear una lista nueva combinando dos existentes, el método más sencillo es utilizar el operador de concatenación `+` (por ejemplo, `lista3 = lista1 + lista2`). Alternativamente, enPython 3.5+, puede usar la sintaxis de descompresión de listas `[*list1, *list2]`, que es muy expresiva y le permite inyectar fácilmente elementos adicionales en cualquier lugar de la creación de la lista.

Si desea modificar una lista existente en el lugar agregando elementos de otra lista, el método `.extend()` es la opción más eficiente. Esto evita asignar memoria para una nueva lista y modifica la lista de destino directamente. Para un recorrido eficiente en memoria de listas fusionadas sin duplicar datos en la memoria, puede usar `itertools.chain()`.

Código y salida de ejecución

Este script demuestra la combinación de dos listas utilizando operadores, técnicas de extensión y descompresión.

list_a = [1, 2, 3]
list_b = [4, 5, 6]

# 1. Plus operator (creates a new list)
merged_plus = list_a + list_b
print("Using + operator:", merged_plus)

# 2. Unpacking operator (creates a new list)
merged_unpack = [*list_a, *list_b]
print("Using unpacking:", merged_unpack)

# 3. Extend method (modifies list_a in-place)
list_a.extend(list_b)
print("After extending list_a:", list_a)
Salida terminal
Using + operator: [1, 2, 3, 4, 5, 6]
Using unpacking: [1, 2, 3, 4, 5, 6]
After extending list_a: [1, 2, 3, 4, 5, 6]

Implementación paso a paso

  • Utilice el operador + para fusionar listas y devolver una nueva lista combinada.
  • Llame a list_a.extend(list_b) para agregar todos los elementos de list_b directamente a list_a.
  • Utilice el operador de descompresión de asterisco [*list_a, *list_b] para construir una lista a partir de elementos de ambos.

Preguntas frecuentes

¿Cuál es la diferencia entre agregar() y extender()?

append() agrega el argumento de la lista completo como un único elemento anidado, mientras que extend() descomprime el argumento de la lista y agrega cada elemento individualmente.

¿Cómo fusiono listas mientras elimino duplicados?

Puede fusionarlos y luego convertir el resultado en un conjunto, o convertirlos en conjuntos primero: list(set(list_a) | set(list_b)).

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.