Aprende Python · lección gratuita

Lección 12 · Métodos de listas y slicing

Resumen

Las listas en Python no solo guardan datos: traen un montón de herramientas para ordenarlos, contarlos, buscarlos y recortarlos. En esta lección dominamos los métodos más usados y el poderoso slicing, que permite extraer "rebanadas" de una lista con una sintaxis muy compacta.

Conceptos

Una lista ofrece métodos (funciones que se llaman con el punto, como lista.sort()) y también funciona con funciones integradas que reciben la lista como argumento (como sum(lista)). La diferencia clave es que muchos métodos modifican la lista original y devuelven None, mientras que las funciones suelen devolver un valor nuevo sin tocar la lista.

Por ejemplo, sort() reordena la lista misma, así que no debes escribir lista = lista.sort() (eso guardaría None). En cambio, sorted() no modifica nada y sí devuelve la versión ordenada, ideal cuando quieres conservar el original.

numeros = [3, 1, 2]
numeros.sort()          # ahora numeros es [1, 2, 3]
print(numeros)          # [1, 2, 3]

original = [3, 1, 2]
copia = sorted(original)  # original intacto
print(original, copia)    # [3, 1, 2] [1, 2, 3]

El slicing usa la forma lista[inicio:fin:paso]. El índice inicio se incluye y fin se excluye. Si omites inicio empieza en 0; si omites fin llega hasta el final. El paso permite saltar elementos, y un paso negativo recorre la lista al revés, por eso lista[::-1] es el truco clásico para invertir.

Ejemplos

letras = ["a", "b", "c", "d", "e"]

# Slicing básico: del índice 1 al 3 (sin incluir el 4)
print(letras[1:4])      # ['b', 'c', 'd']

# Primeros 2 y últimos 2 elementos
print(letras[:2])       # ['a', 'b']
print(letras[3:])       # ['d', 'e']

# Invertir con paso negativo
print(letras[::-1])     # ['e', 'd', 'c', 'b', 'a']

# Buscar, contar y resumir
nums = [4, 7, 4, 9, 1]
print("4" in letras)    # False (es 'a','b'... no hay '4')
print(nums.count(4))    # 2
print(nums.index(9))    # 3
print(sum(nums), min(nums), max(nums))  # 25 1 9
💡 No reasignes el resultado de sort() ni reverse(). Esos métodos devuelven None; si necesitas una copia ordenada usa sorted() y deja la lista original tranquila.

Cheatsheet

SintaxisQué haceModifica original
lista.sort()Ordena ascendente en el lugar
sorted(lista)Devuelve nueva lista ordenadaNo
lista.reverse()Invierte en el lugar
lista[::-1]Copia invertidaNo
x in listaTrue si x estáNo
lista.count(x)Cuántas veces aparece xNo
lista.index(x)Posición de la 1ª apariciónNo
lista[a:b]Sublista de a a b-1No
lista[:n] / lista[n:]Primeros n / desde nNo
lista[::2]Uno de cada dosNo
sum/min/max(lista)Suma / mínimo / máximoNo

---

← Listas: crear y recorrerTuplas →

Ver todas las lecciones de Aprende Python →