Python add to list: añadir elementos a la lista Python
Las listas son estructuras de datos fundamentales en informática. Muchos algoritmos se basan en la modificación de listas. Te mostramos cómo añadir elementos a una lista de Python.
¿Cómo añadir elementos a una lista de Python?
A diferencia de las tuplas y las cadenas, las listas en Python son “mutables”, es decir, son estructuras de datos modificables. Podemos añadir elementos a una lista de Python, eliminarlos y cambiar su orden. Hay varias formas de hacerlo, cada una con distintas ventajas y desventajas.
Te presentamos cuatro enfoques que puedes utilizar en Python para añadir elementos a una lista:
- Con los métodos
list
de Python - Con concatenación
- Con la notación slice
- Con list comprehension
Añadir elementos a una lista de Python con el método list
En Python, la clase list
sirve de base para todas las operaciones con listas. La clase define una serie de métodos para objetos de lista. Se pueden encontrar tres métodos útiles para agregar elementos a una lista:
Método list |
Argumentos | Explicación |
---|---|---|
append()
|
element
|
Añade un único elemento al final de la lista |
extend()
|
[elements]
|
Añade múltiples elementos al final de la lista |
insert()
|
index, element
|
Añade un único elemento antes del índice dado |
Es importante entender que la modificación se realiza in situ para los tres métodos mencionados. Esto significa que el objeto de lista se modifica en lugar de crear y devolver una nueva lista. En consecuencia, todos los métodos devuelven None
.
Añade un único elemento al final de la lista con append()
El método Python append()
se puede utilizar para añadir un único elemento al final de una lista existente. Aquí puedes verlo con un ejemplo:
Ten cuidado al utilizar append()
, ya que este método siempre añade un único elemento. Si el elemento a añadir es otra lista, el resultado será una lista anidada:
El intento de crear la lista [2, 3, 5, 7]
ha fallado. Para añadir varios elementos, es mejor usar el método extend()
.
Añade elementos al final de la lista con extend()
El método Pythonextend()
funciona de forma similar a append()
, con la diferencia de que se añaden varios elementos a una lista existente. Aquí un ejemplo:
Ten cuidado con extend()
, ya que este método espera un iterable como argumento y desempaqueta sus elementos. Esto conduce a un comportamiento inesperado cuando se llama con un string:
Para añadir un solo elemento a una lista de Python, o bien utiliza append()
o encierra el elemento en una lista con corchetes. Entonces extend()
también funcionará:
Usa insert() para añadir un único elemento antes del índice especificado
Hasta ahora has podido ver cómo añadir uno o más elementos al final de una lista Python. ¿Pero qué pasa si quieres insertar un elemento en cualquier posición? Exactamente para este caso, existe el método Python insert()
. Este método toma un índice numérico además del elemento a insertar:
Ten cuidado al intentar agregar varios elementos con insert()
, ya que el método inserta exactamente un elemento, lo que puede resultar en una lista anidada inesperada:
Para insertar varios elementos correctamente dentro de una lista, utiliza un bucle for
. Además, puedes utilizar la función reserved()
para mantener el orden de los elementos insertados:
Añadir elementos a una lista de Python con concatenación
Además de los métodos list
presentados, existe otra posibilidad de añadir elementos a una lista Python con concatenación. Para ello se utiliza el operador +
de Python. La concatenación de listas es similar al uso de extend()
. Sin embargo, la concatenación crea una nueva lista en lugar de operar “in-place”.
Crea dos listas y añade la segunda a la primera. Como la operación devuelve una nueva lista, asigna el valor de retorno a una nueva lista:
En este caso, el operador de concatenación llama al método __add__()
. Por lo tanto, las expresiones guys + gals
y guys.__add__(gals)
son equivalentes:
Si estás familiarizado con los Python operators, ya lo habrás adivinado. La concatenación de listas también es compatible con la asignación aumentada. Para ello, se utiliza el operador +=
para añadir elementos a una lista “in-place”:
El operador +=
llama al método __iadd__()
, donde la “i” significa “in-place”. De forma análoga al método extend()
, el receptor del método se modifica directamente. Por lo tanto, las siguientes líneas son equivalentes:
groceries = groceries + ['Butter']
groceries += ['Butter']
groceries.__iadd__(['Butter'])
groceries.extend(['Butter'])
Ten cuidado cuando uses los operadores de concatenación de listas para añadir un único elemento a la lista. El elemento individual debe estar contenido en una lista, de lo contrario se puede descomprimir un iterable:
El uso de una lista de un solo elemento conduce al efecto que probablemente busques de añadir otra ciudad a la lista:
Uso de la notación slice para añadir elementos a una lista en Python
Las slices son una función de Python para seleccionar elementos consecutivos de una lista. La sintaxis de las slices se corresponden con la conocida función range()
:
Además, existe una notación “shorthand” para crear objetos slice junto con el operador de índice []
:
Se puede utilizar un objeto slice en lugar de un índice numérico para seleccionar varios elementos de una secuencia:
En combinación con asignaciones, los slices pueden usarse como alternativa a los métodos list
append()
, extend()
e insert()
:
Método list |
Asignación de slice correspondiente | Explicación |
---|---|---|
lst.append(element)
|
lst[len(lst)+1:] = [element]
|
Añade un elemento al final de la lista |
lst.extend([elements])
|
lst[len(lst)+1:] = [elements]
|
Añade múltiples elementos al final de la lista |
lst.insert(index, element)
|
lst[index:index] = [element]
|
Añade un elemento antes del índice dado |
Para entender cómo funciona, observa primero cómo asignar un elemento de lista por índice numérico. En este caso, se sobrescribe un único elemento de la lista:
¿Qué pasa si quieres insertar un elemento por asignación de índice? Usa un slice que contenga el índice deseado como valores start
y stop
. Para que la asignación de slice funcione, es obligatorio tener una lista a la derecha del signo igual:
Con este truco puedes incluso insertar varios elementos a la vez en una lista Python. El método insert()
no puede hacerlo:
Además, las asignaciones de slices pueden usarse para sobrescribir selectivamente elementos de una lista. En definitiva, las slices son una función muy flexible que debería estar en la caja de herramientas de todos los programadores de Python.
Añadir elementos Python a una lista con list comprehension
Un caso de uso común para añadir elementos a una lista en Python es poblar una nueva lista con elementos. El método estándar, que funciona en Python como en la mayoría de los lenguajes de programación, es el siguiente:
- Crear una lista vacía
- Crear elementos mediante bucle
- Ampliar la lista con el elemento creado
Como ejemplo, observa cómo generar la lista de los diez primeros números cuadrados:
Sin embargo, hay un enfoque mejor en Python. Es el llamado list comprehension, que genera la lista sin un bucle for
y una variable de lista vacía:
Por muy atractivo que sea, el list comprehension solo sirve para rellenar una lista nueva. Para ampliar una lista existente, se recurre a los métodos ya presentados.
Con Deploy Now de IONOS puedes implementar páginas web y aplicaciones a través de GitHub.