Python insert: cómo insertar elementos en listas

Python ofrece toda una gama de métodos incorporados que simplifican y aceleran la implementació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 individuales al final, los métodos Python extend y Python append te serán de utilidad.

Insert de Python: sintaxis, parámetros y funcionamiento

El método insert toma dos valores como parámetros: el elemento que insertar y el índice en el que se va a insertar. Dado que las listas de Python son heterogé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 parámetros se pueden pasar directamente o se pueden crear como variables antes de llamar al método. Puedes ver el funcionamiento 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 ingredientes para hornear se amplía con dos ingredientes más, que se insertan en los índices 0 y 2 respectivamente. Es importante tener en cuenta que la indexación en Python comienza en 0, como en la mayoría de los lenguajes de programación. Esto significa que el primer elemento tiene índice 0, el segundo elemento índice 1 y así sucesivamente. 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 desplazados una posición a la derecha.

Si el índice especificado está fuera del rango válido de la lista (por ejemplo, mayor que el número de elementos de la lista), el elemento simplemente 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 especifica un índice negativo, se interpretará como distancia al final de la lista. Por ejemplo, -1corresponde al penúltimo elemento, -2al anterior, y así sucesivamente. 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 plataforma que te permita implementar tu página web u otra aplicación de la forma más fácil, rápida y fluida posible? Deploy Now de IONOS es lo que necesitas.

Alternativas a insert de Python

Dependiendo de lo que necesites, hay algunos operadores de Python que son alternativas adecuadas a insert(). Te presentamos dos de ellos.

El operador index

Con el operador index, puedes leer o sobrescribir un elemento en un índice especificado 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 diferencia del operador index, slice no devuelve un solo elemento de una lista, sino una subsecuencia. Así, de nuestra lista ingredientes podrías obtener los elementos de los índices 3 a 5 y así obtener la subsecuencia `[‘Sal’, ‘Mantequilla’, ‘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)
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 concaténalos con añadir. A continuación, toma todos los elementos de ingredientes a partir del índice 3 y concatena de nuevo nuestra lista con éste. Finalmente, sobrescribe ingredientes con la lista resultante de esta doble concatenación.

Es importante tener en cuenta que esta solución requiere muchas escrituras, ya que se sobrescribe toda la lista. Esto debe tenerse en cuenta si tu programa debe ser muy eficiente y trabajas con listas muy grandes.