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.
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)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
Aprenda a ordenar una lista en Python usando el método sort() y la función sorted(). Descubra ejemplos de ordenación inversa y clasificación de claves personalizadas.
Cómo comprobar si una lista está vacía en PythonAprenda las formas más pitónicas de comprobar si una lista está vacía en Python. Compare comprobaciones booleanas implícitas con comparaciones de longitud.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Listas de Python
Aprenda todo sobre las listas de Python. Descubra cómo crear, dividir, modificar e iterar a través de matrices en Python de forma nativa.
Hoja de trucos sobre métodos de cadenas de Python
Una guía de referencia completa para la manipulación de cadenas de Python. Domine el formateo, la búsqueda, la división, el reemplazo y la verificación de las propiedades de las cadenas.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.