# 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](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-insert/) o [Python append](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/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:

```Python
lista.extend(lista2)
```

En este ejemplo, los elementos de `lista2`se 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:

```Python
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]
```

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](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-list/), los [strings de Python](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-string/) y los [Python dictionaries](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-dictionary/). 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.

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

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](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/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:

```Python
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']
```

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:

```Python
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]
```

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](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/bucle-for-en-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](https://www.ionos.es/alojamiento/deploy-now "Deploy Now de IONOS") de IONOS es la plataforma perfecta para ti.


This is a markdown version of: [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/extend-de-python/](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/extend-de-python/) for AI/LLM consumption.