Python ofrece toda una gama de métodos in­co­r­po­ra­dos que si­m­pli­fi­can y aceleran la im­ple­me­n­ta­ción de tu programa. Entre ellos se encuentra el método insert, con el que puedes insertar un único elemento en una lista de Python existente. Si quieres añadir varios elementos a la lista a la vez o solo añadir elementos in­di­vi­dua­les al final, los métodos Python extend y Python append te serán de utilidad.

Insert de Python: sintaxis, pa­rá­me­tros y fu­n­cio­na­mie­n­to

El método insert toma dos valores como pa­rá­me­tros: el elemento que insertar y el índice en el que se va a insertar. Dado que las listas de Python son he­te­ro­gé­neas, este elemento puede tener cualquier tipo de dato (por ejemplo, una lista, un número, etc.). Sin embargo, el índice debe ser un número entero. La siguiente línea de código muestra la sintaxis de insert:

ingredientes.insert(1, "Azucar")
Python

En este ejemplo, el string (español: “cadena”) “Azucar” se inserta en la posición 1 de la lista ingredientes. El índice en el que se desea insertar el elemento se pasa como el primer argumento, y el elemento en sí se pasa como el segundo argumento. Como es habitual, ambos pa­rá­me­tros se pueden pasar di­re­c­ta­me­n­te o se pueden crear como variables antes de llamar al método. Puedes ver el fu­n­cio­na­mie­n­to con el siguiente ejemplo:

ingredientes = ["Harina", "Huevos", "Mantequilla"]
ingredientes.insert(0, "Azucar")
print(ingredientes) # Resultado: ['Azucar', 'Harina', 'Huevos', 'Mantequilla']
Python

En este caso, una lista de in­gre­die­n­tes para hornear se amplía con dos in­gre­die­n­tes más, que se insertan en los índices 0 y 2 re­s­pe­c­ti­va­me­n­te. Es im­po­r­ta­n­te tener en cuenta que la in­de­xa­ción en Python comienza en 0, como en la mayoría de los lenguajes de pro­gra­ma­ción. Esto significa que el primer elemento tiene índice 0, el segundo elemento índice 1 y así su­ce­si­va­me­n­te. Cuando se inserta un elemento en una lista con insert(), debe hacerse espacio para ello. Para hacer este espacio, el elemento ya presente en el índice y todos sus sucesores son de­s­pla­za­dos una posición a la derecha.

Si el índice es­pe­ci­fi­ca­do está fuera del rango válido de la lista (por ejemplo, mayor que el número de elementos de la lista), el elemento si­m­ple­me­n­te se inserta al final de la lista. En este caso, insert()se comporta de forma idéntica al método append de Python. Sin embargo, si se es­pe­ci­fi­ca un índice negativo, se in­te­r­pre­ta­rá como distancia al final de la lista. Por ejemplo, -1co­rre­s­po­n­de al penúltimo elemento, -2al anterior, y así su­ce­si­va­me­n­te. Puedes ver estos dos casos en el siguiente ejemplo:

ingredientes.insert(10, "Levadura")
print(ingredientes) # Resultado: ['Azucar', 'Harina', 'Huevos', 'Mantequilla', 'Levadura']
ingredientes.insert(-2, "Sal")
print(ingredientes) # Resultado: ['Azucar', 'Harina', 'Huevos', 'Sal', 'Mantequilla', 'Levadura']
Python
Consejo

¿Buscas una pla­ta­fo­r­ma que te permita im­ple­me­n­tar tu página web u otra apli­ca­ción de la forma más fácil, rápida y fluida posible? Deploy Now de IONOS es lo que necesitas.

Al­te­r­na­ti­vas a insert de Python

De­pe­n­die­n­do de lo que necesites, hay algunos ope­ra­do­res de Python que son al­te­r­na­ti­vas adecuadas a insert(). Te pre­se­n­ta­mos dos de ellos.

El operador index

Con el operador index, puedes leer o so­bre­s­cri­bir un elemento en un índice es­pe­ci­fi­ca­do de una lista. De esta forma es posible sustituir un elemento de una lista por otro. Puedes verlo en el siguiente ejemplo:

print(ingredientes) # Resultado: ['Azucar', 'Harina', 'Huevos', 'Sal', 'Mantequilla', 'Levadura']
ingredientes[2] = "Bicarbonato"
print(ingredientes) # Resultado: ['Azucar', 'Harina', 'Bicarbonato', 'Sal', 'Mantequilla', 'Levadura']
Python

El operador slice

Sin embargo, si no quieres eliminar elementos de la lista o incluso si quieres insertar varios elementos al mismo tiempo en el centro de ella, el operador slice es la mejor opción. A di­fe­re­n­cia del operador index, slice no devuelve un solo elemento de una lista, sino una su­b­se­cue­n­cia. Así, de nuestra lista ingredientes podrías obtener los elementos de los índices 3 a 5 y así obtener la su­b­se­cue­n­cia `[‘Sal’, ‘Ma­n­te­qui­lla’, ‘Levadura’]. En el siguiente ejemplo, observa cómo puedes utilizar el operador slice para insertar cualquier número de elementos en medio de tu lista:

añadir = ["Mas azucar", "Aun mas azucar"]
ingredientes = ingredientes[:3] + añadir + ingredientes[3:]
print(ingredientes)
# Resultado: ['Azucar', 'Harina', 'Bicarbonato', 'Mas azucar', 'Aun mas azucar', 'Sal', 'Mantequilla', 'Levadura']
Python

Aquí, la lista añadir se ha insertado en medio de la lista ingredientes. Para ello, primero utiliza el operador slice para tomar todos los elementos de ingredientes hasta el índice 3 y co­n­ca­té­na­los con añadir. A co­n­ti­nua­ción, toma todos los elementos de ingredientes a partir del índice 3 y concatena de nuevo nuestra lista con éste. Fi­na­l­me­n­te, so­bre­s­cri­be ingredientes con la lista re­su­l­ta­n­te de esta doble co­n­ca­te­na­ción.

Es im­po­r­ta­n­te tener en cuenta que esta solución requiere muchas es­cri­tu­ras, ya que se so­bre­s­cri­be toda la lista. Esto debe tenerse en cuenta si tu programa debe ser muy eficiente y trabajas con listas muy grandes.

Ir al menú principal