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")
PythonEn 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']
PythonEn 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, -1
corresponde al penúltimo elemento, -2
al 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¿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']
PythonEl 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)
PythonAquí, 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.