El método extend de Python ofrece a los pro­gra­ma­do­res la po­si­bi­li­dad de extender una lista ya existente con los elementos de una segunda lista. Es im­po­r­ta­n­te 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 es­pe­cí­fi­co de una lista o solo quieres añadir elementos in­di­vi­dua­les al final, Python insert o Python append son la mejor opción.

Extend de Python: fu­n­cio­na­li­dad y sintaxis

El fu­n­cio­na­mie­n­to 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 pro­gra­ma­do­res llaman a este proceso co­n­ca­te­na­ció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 di­re­c­ta­me­n­te la lista original. A di­fe­re­n­cia de la lista original, la segunda lista no se modifica. Descubre esta fu­n­cio­na­li­dad 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 di­re­c­ta­me­n­te 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 he­te­ro­gé­nea, es decir, puede contener elementos de diferente tipo.

Aunque extend() se utiliza más co­mú­n­me­n­te para co­n­ca­te­nar dos listas, también existen otras apli­ca­cio­nes de este método que debes conocer. El método extend no solo acepta listas como pa­rá­me­tros, 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 di­c­tio­na­ries. Al llamar a extend(), se puede pasar cualquier objeto iterable como parámetro. Los elementos del iterable se añadirán a la lista in­di­vi­dua­l­me­n­te. De­s­cú­bre­lo 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 ca­ra­c­te­res (string) como argumento. Los co­m­po­ne­n­tes in­di­vi­dua­les de la cadena (ca­ra­c­te­res) se añadieron a la lista de forma in­di­vi­dual.

Al­te­r­na­ti­vas 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 al­te­r­na­ti­vas 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 pro­pó­si­tos, 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 di­fe­re­n­cia muy im­po­r­ta­n­te. A di­fe­re­n­cia 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 in­e­fi­cie­n­te 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 co­n­ca­te­na­ción (+=), no se creará una lista adicional, sino que se mo­di­fi­ca­rá la lista original. Esto evita la de­s­ve­n­ta­ja de efi­cie­n­cia 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 fu­n­cio­na­mie­n­to 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()pro­po­r­cio­nan el mismo resultado, excepto que con append()no es necesario es­pe­ci­fi­car el elemento a agregar entre corchetes. Sin embargo, si quieres agregar varios elementos a la lista uti­li­za­n­do append(), debes iterar sobre una lista existente uti­li­za­n­do el bucle for de Python. Por ello, append() solo es útil cuando se trata realmente de un solo elemento.

Consejo

¿Quieres im­ple­me­n­tar tu página web u otra apli­ca­ción de forma rápida, sencilla y di­re­c­ta­me­n­te a través de Git? Entonces Deploy Now de IONOS es la pla­ta­fo­r­ma perfecta para ti.

Ir al menú principal