Python extend: cómo fusionar dos listas

El método extend de Python ofrece a los programadores la posibilidad de extender una lista ya existente con los elementos de una segunda lista. Es importante tener en cuenta que los elementos a añadir irán al final de la lista. Si quieres añadir un elemento en un índice específico de una lista o solo quieres añadir elementos individuales al final, Python insert o Python append son la mejor opción.

Extend de Python: funcionalidad y sintaxis

El funcionamiento de extend() es muy sencillo. Este método toma una lista y añade al final otra, de modo que el primer elemento de la segunda lista queda justo después del último elemento de la primera lista. De esta manera, la primera lista se amplía con los elementos de la segunda. Los programadores llaman a este proceso concatenación. La sintaxis de extend()es sencilla, como puede verse en la siguiente línea de código:

lista.extend(lista2)
Python

En este ejemplo, los elementos de lista2se añaden al final de lista. Sin embargo, no se devuelve una lista con todos los elementos. En su lugar, se modifica directamente la lista original. A diferencia de la lista original, la segunda lista no se modifica. Descubre esta funcionalidad de extend() en el siguiente ejemplo:

lista = ["uno", "dos", "tres"]
lista2 = ["cuatro", "cinco", "seis"]
lista.extend(lista2)
print(lista) # Resultado: ['uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis']
lista.extend([7, 8, 9])
print(lista) # Resultado: ['uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 7, 8, 9]
Python

Como puedes ver, el método realiza la tarea esperada. Puedes crear la lista de antemano como objeto o pasarla como parámetro directamente al llamar al método. El ejemplo también muestra que los elementos de las listas que se van a añadir pueden tener cualquier tipo de datos. Esto es posible porque una lista en Python puede ser heterogénea, es decir, puede contener elementos de diferente tipo.

Aunque extend() se utiliza más comúnmente para concatenar dos listas, también existen otras aplicaciones de este método que debes conocer. El método extend no solo acepta listas como parámetros, sino también todos los objetos iterables (objetos que no contienen elementos sobre los cuales se puede iterar). Estos objetos iterables incluyen, entre otros, las listas de Python, los strings de Python y los Python dictionaries. Al llamar a extend(), se puede pasar cualquier objeto iterable como parámetro. Los elementos del iterable se añadirán a la lista individualmente. Descúbrelo en el siguiente ejemplo.

chars = ['a', 'b', 'c']
string = "def"
chars.extend(string)
print(chars) # Resultado: ['a', 'b', 'c', 'd', 'e', 'f']
Python

En este ejemplo, se ha pasado una cadena de caracteres (string) como argumento. Los componentes individuales de la cadena (caracteres) se añadieron a la lista de forma individual.

Alternativas a extend de Python

El método extend te ofrece una solución eficaz para extender una lista con los elementos de otra. Sin embargo, existen algunas alternativas que debes conocer.

El additions operator

El additions operator (o signo más) es uno de los Python operators más comunes y se utiliza sobre todo para sumar dos números. Sin embargo, también se puede utilizar para otros propósitos, como la fusión de listas. Con el additions operator, es incluso posible fusionar cualquier número de listas al mismo tiempo. Puedes verlo en este ejemplo:

europa = ["Alemania", "Finlandia"]
asia = ["China", "India"]
africa = ["Sudan", "Mali"]
paises = europa + asia + africa
print(europa) # Resultado: [Alemania, Finlandia]
print(asia) # Resultado: ['China', 'India']
print(africa) # Resultado: ['Sudan', 'Mali']
print(paises) # Resultado: ['Alemania', 'Finlandia', 'China', 'India', 'Sudan', 'Mali']
Python

Como puedes ver, este método da casi el mismo resultado que extend(), pero hay una diferencia muy importante. A diferencia del método extend, el additions operator no modifica ninguna de las listas pasadas. En su lugar, el resultado se devuelve como una nueva lista. Dado que para ello se crea un nuevo objeto en memoria, el additions operator es algo más ineficiente que el método extend a la hora de combinar dos listas. Esto debe tenerse en cuenta si se trabaja con listas muy grandes o si se desea que el programa sea lo más eficiente posible.

Consejo

Si en vez del additions operator utilizas el operador de concatenación (+=), no se creará una lista adicional, sino que se modificará la lista original. Esto evita la desventaja de eficiencia del additions operator. Sin embargo, extend() y +=no funcionan de la misma manera en todos los iterables.

El método append

El método append tiene un funcionamiento similar a extend(), pero difiere en que solo puede agregar un elemento a una lista. Por ello, no es posible pasarle un iterable a este método. Puedes verlo en el siguiente ejemplo:

list = [0, 1, 1, 2]
list.extend([3])
print(list) # Resultado: [0, 1, 1, 2, 3]
list.append(5)
print(list) # Resultado: [0, 1, 1, 2, 3, 5]
Python

Aquí extend()y append()proporcionan el mismo resultado, excepto que con append()no es necesario especificar el elemento a agregar entre corchetes. Sin embargo, si quieres agregar varios elementos a la lista utilizando append(), debes iterar sobre una lista existente utilizando el bucle for de Python. Por ello, append() solo es útil cuando se trata realmente de un solo elemento.

Consejo

¿Quieres implementar tu página web u otra aplicación de forma rápida, sencilla y directamente a través de Git? Entonces Deploy Now de IONOS es la plataforma perfecta para ti.