W3docs

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

EnfoqueAñadePosición¿Modifica en su lugar?
list.append(x)un elementoal final
list.extend(iterable)todos los elementos del iterableal final
list.insert(i, x)un elementoíndice i
list + othertodos los elementos de otheral finalno (devuelve una nueva lista)
list += othertodos los elementos de otheral final
list[i:i] = itemsmúltiples elementosíndice i

Uso de append()

append() añade un único elemento al final de una lista. Modifica la lista en su lugar y siempre devuelve None.

python— editable, runs on the server

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 4

Para 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:

python— editable, runs on the server

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:

python— editable, runs on the server

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]  — unchanged

Usa + 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

Práctica

Práctica
Which of the following methods add items to a Python list?
Which of the following methods add items to a Python list?
Was this page helpful?