W3docs

Cambiar elementos de una lista

Aprende a cambiar elementos de listas en Python usando índices, slicing, append(), insert(), extend() y comprensiones de lista con ejemplos claros.

Las listas de Python son mutables, lo que significa que puedes modificar su contenido después de crearlas. Este capítulo cubre todas las técnicas prácticas para modificar elementos de una lista: asignación directa por índice, reemplazo con slicing, append(), insert(), extend() y comprensiones de lista. Entender cuándo usar cada enfoque es clave para escribir código Python limpio y eficiente.

Cambiar un solo elemento por índice

La forma más directa de cambiar un elemento es asignar un nuevo valor a su posición de índice. Los índices de las listas comienzan en 0.

fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
print(fruits)

Salida:

['apple', 'mango', 'cherry']

El índice negativo cuenta desde el final de la lista. El índice -1 es el último elemento, -2 es el penúltimo, y así sucesivamente.

colors = ["red", "green", "blue"]
colors[-1] = "yellow"
print(colors)

Salida:

['red', 'green', 'yellow']

Si intentas asignar a un índice que no existe, Python lanza un IndexError. Usa los patrones de acceso a listas o len() para mantenerte dentro de los límites.

Reemplazar un rango de elementos con slicing

La asignación con slicing reemplaza una sección contigua de una lista con otra lista. El slice my_list[start:end] selecciona elementos desde el índice start hasta (sin incluir) el índice end.

python— editable, runs on the server

Salida:

[1, 20, 30, 5]

Observa que la lista de reemplazo no necesita tener la misma longitud que el slice. Aquí, tres elementos (2, 3, 4) fueron reemplazados por dos elementos (20, 30), reduciendo la lista en uno.

También puedes insertar elementos sin eliminar ninguno usando un slice vacío:

letters = ["a", "b", "e"]
letters[2:2] = ["c", "d"]
print(letters)

Salida:

['a', 'b', 'c', 'd', 'e']

append() — agregar un elemento al final

El método append() agrega un solo elemento al final de una lista y modifica la lista en su lugar. Siempre agrega exactamente un elemento, incluso si ese elemento es en sí mismo una lista.

python— editable, runs on the server

Salida:

[1, 2, 3, 4, 5]

Agregar una lista como un solo elemento la anida en lugar de fusionarla:

my_list = [1, 2, 3]
my_list.append([4, 5])
print(my_list)

Salida:

[1, 2, 3, [4, 5]]

Usa extend() en su lugar cuando quieras fusionar todos los elementos de otra lista.

insert() — agregar un elemento en una posición específica

El método insert() coloca un nuevo elemento en un índice dado, desplazando todos los elementos siguientes una posición a la derecha.

python— editable, runs on the server

Salida:

[1, 2, 99, 3, 4]

insert() nunca lanza un IndexError para posiciones fuera de rango. Si pasas un índice mayor que la longitud de la lista, el elemento se agrega al final. Si pasas un índice negativo más allá del inicio, se agrega al principio.

extend() — fusionar otro iterable en la lista

El método extend() agrega cada elemento de un iterable (lista, tupla, string, etc.) al final de la lista. La lista original crece en su lugar.

python— editable, runs on the server

Salida:

[1, 2, 3, 4, 5, 6, 7]

extend() vs append() de un vistazo:

MétodoQué agregaResultado para [1,2] + [3,4]
append([3,4])Un elemento (una lista anidada)[1, 2, [3, 4]]
extend([3,4])Cada elemento individualmente[1, 2, 3, 4]

Comprensión de lista — transformar elementos con una nueva lista

La comprensión de lista crea una nueva lista aplicando una expresión a cada elemento (con un filtro opcional). Tras la comprensión, reasignas la variable — la lista original no se muta en su lugar.

python— editable, runs on the server

Salida:

[4, 8, 12]

También puedes transformar cada elemento sin filtrar:

prices = [10.0, 25.5, 8.75]
discounted = [round(p * 0.9, 2) for p in prices]
print(discounted)

Salida:

[9.0, 22.95, 7.88]

Usa la comprensión de lista cuando quieras una solución concisa y legible de una sola línea para producir una copia modificada de una lista.

Elegir el enfoque adecuado

ObjetivoMejor método
Cambiar un elemento en una posición conocidaAsignación por índice list[i] = value
Reemplazar un rango de elementosAsignación con slice list[a:b] = new_items
Agregar un elemento al finalappend()
Agregar un elemento en una posición específicainsert(index, value)
Fusionar todos los elementos de otro iterableextend()
Producir una copia modificada según una reglaComprensión de lista

Para eliminar elementos de una lista, consulta Eliminar elementos de una lista. Para ordenar una lista en su lugar, consulta Ordenar listas. Para una referencia completa de todos los métodos de lista, consulta Métodos de lista.

Práctica

Práctica
In Python, how can we change items in a list?
In Python, how can we change items in a list?
Was this page helpful?