Listas en Python: Cómo añadir elementos a una lista
Aprende todas las formas de añadir elementos a una lista en Python: append, extend, insert, el operador + y la asignación por rebanada, con ejemplos y advertencias explicadas.
Las listas de Python son secuencias mutables, lo que significa que puedes añadir, eliminar y modificar elementos después de que la lista haya sido creada. Este capítulo cubre todos los métodos y operadores que Python ofrece para insertar nuevos elementos en una lista, explica cuándo usar cada uno y destaca las advertencias más comunes.
Métodos y operadores de un vistazo
| Enfoque | Añade | Posición | ¿Modifica en su lugar? |
|---|---|---|---|
list.append(x) | un elemento | al final | sí |
list.extend(iterable) | todos los elementos del iterable | al final | sí |
list.insert(i, x) | un elemento | índice i | sí |
list + other | todos los elementos de other | al final | no (devuelve una nueva lista) |
list += other | todos los elementos de other | al final | sí |
list[i:i] = items | múltiples elementos | índice i | sí |
Uso de append()
append() añade un único elemento al final de una lista. Modifica la lista en su lugar y siempre devuelve None.
append() acepta cualquier objeto de Python — strings, enteros, booleanos e incluso otras listas:
nums = [1, 2, 3]
nums.append(4)
print(nums) # [1, 2, 3, 4]Advertencia: añadir una lista la anida
Si pasas una lista a append(), Python la trata como un único elemento y crea una lista anidada — no fusiona las dos listas:
fruits = ['apple', 'banana']
fruits.append(['grape', 'kiwi'])
print(fruits) # ['apple', 'banana', ['grape', 'kiwi']]
print(len(fruits)) # 3, not 4Para fusionar dos listas en su lugar, usa extend() o el operador + (se explica más abajo).
Uso de extend()
extend() itera sobre un iterable — una lista, tupla, conjunto o cualquier otra secuencia — y añade cada uno de sus elementos al final de la lista:
append() vs extend() — comparación directa
a = [1, 2, 3]
a.extend([4, 5])
print(a) # [1, 2, 3, 4, 5]
b = [1, 2, 3]
b.append([4, 5])
print(b) # [1, 2, 3, [4, 5]] ← nested!Advertencia: extender con un string
Los strings son iterables, por lo que extend() añadirá cada carácter como un elemento separado:
letters = ['a', 'b']
letters.extend('cd')
print(letters) # ['a', 'b', 'c', 'd']Si quieres añadir el string completo como un único elemento, usa append() en su lugar.
Uso de insert()
insert(i, x) añade el elemento x en la posición i, desplazando todos los elementos existentes desde ese índice en adelante una posición hacia la derecha:
Anteponer un elemento a una lista (añadir al principio) es un caso de uso común:
fruits = ['banana', 'orange']
fruits.insert(0, 'apple')
print(fruits) # ['apple', 'banana', 'orange']Advertencia: índice mayor que la longitud de la lista
Si el índice que pasas es mayor que la longitud actual de la lista, Python no lanza un error — simplemente añade el elemento al final:
fruits = ['apple', 'banana']
fruits.insert(100, 'orange')
print(fruits) # ['apple', 'banana', 'orange']Los índices negativos también funcionan: insert(-1, x) inserta justo antes del último elemento.
Uso del operador +
El operador + concatena dos listas y devuelve una nueva lista. Ninguna de las listas originales se modifica:
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c) # [1, 2, 3, 4, 5, 6]
print(a) # [1, 2, 3] — unchangedUsa + cuando necesites mantener los originales intactos, o cuando estés construyendo una expresión de lista en lugar de mutar una.
Uso de += (asignación aumentada)
El operador += es un atajo para extend() — fusiona el iterable de la derecha en la lista existente en su lugar:
a = [1, 2, 3]
a += [7, 8]
print(a) # [1, 2, 3, 7, 8]A diferencia de +, += no crea una nueva lista — actualiza a en su lugar, lo que es más eficiente en memoria cuando se trabaja con listas grandes.
Insertar múltiples elementos en una posición específica (asignación por rebanada)
Para insertar un bloque de elementos en el medio de una lista, la asignación por rebanada es el enfoque más directo:
nums = [1, 2, 5, 6]
nums[2:2] = [3, 4] # insert [3, 4] starting at index 2
print(nums) # [1, 2, 3, 4, 5, 6]La sintaxis list[i:i] = items abre una ventana de ancho cero en el índice i y la rellena con los elementos de items. No se elimina ningún elemento existente.
Elegir el método adecuado
- Añadir un elemento al final: usa
append(). Es la opción más sencilla y rápida para la inserción de un único elemento. - Fusionar otra lista en esta: usa
extend()o+=. Ambas son equivalentes;+=es ligeramente más idiomático en bucles. - Añadir un elemento en una posición específica: usa
insert(). - Necesitas que la lista original permanezca intacta: usa el operador
+y asigna el resultado a una nueva variable. - Insertar varios elementos en el medio: usa la asignación por rebanada.
Capítulos relacionados
- Listas en Python — crear listas, indexación y propiedades de las listas
- Acceder a elementos de una lista — leer elementos por índice y rebanada
- Modificar elementos de una lista — actualizar elementos existentes en su lugar
- Eliminar elementos de una lista — borrar elementos con
remove(),pop()ydel - Métodos de listas — referencia completa de todos los métodos de lista integrados