Una lista es una colección ordenada y mutable: puedes agregar, quitar y cambiar sus elementos. Es la estructura de datos más usada de Python.
Crear y acceder
frutas = ["manzana", "pera", "uva"]
mixto = [42, "texto", True, 3.14] # admite tipos mezclados
vacia = []
print(frutas[0]) # manzana → índice desde 0
print(frutas[-1]) # uva → negativo: desde el final
print(len(frutas)) # 3
Mutar: agregar, quitar, cambiar
numeros = [3, 1, 2]
numeros.append(4) # [3, 1, 2, 4] → agrega al final
numeros.insert(0, 0) # [0, 3, 1, 2, 4] → inserta en posición
numeros.remove(1) # [0, 3, 2, 4] → elimina por VALOR
ultimo = numeros.pop() # quita y devuelve el último
primero = numeros.pop(0) # quita y devuelve el de la posición 0
numeros[0] = 99 # [99, 3, 2] → reasignar por índice
Cuidado: append() agrega un elemento. Para unir listas usa extend() o +:
a = [1, 2]
a.append([3, 4]) # [1, 2, [3, 4]] ← ¡lista dentro de lista!
b = [1, 2]
b.extend([3, 4]) # [1, 2, 3, 4] ← elementos sueltos
Operaciones útiles
numeros = [4, 8, 1, 2]
print(max(numeros)) # 8
print(min(numeros)) # 1
print(sum(numeros)) # 15
print(sorted(numeros)) # [1, 2, 4, 8] → lista NUEVA ordenada
numeros.sort() # [1, 2, 4, 8] → ordena EN SITIO
print(8 in numeros) # True → pertenencia
Slicing en listas
Igual que en strings — [inicio:fin] sin incluir el fin:
letras = ["a", "b", "c", "d", "e"]
print(letras[1:4]) # ['b', 'c', 'd']
print(letras[:2]) # ['a', 'b']
print(letras[::-1]) # ['e', 'd', 'c', 'b', 'a'] → invertida
Tuplas: la prima inmutable
Una tupla se crea con paréntesis y no puede modificarse después:
coordenada = (10.5, 20.3)
coordenada[0] # 10.5 → sí se puede leer
coordenada[0] = 5 # TypeError: ¡no se puede asignar!
¿Cuándo usar cada una?
- Lista: colección que va a cambiar (ítems de un carrito, resultados)
- Tupla: datos fijos que van juntos (coordenadas, RGB de un color, día-mes-año)
Desempaquetado
Python puede asignar elementos de una secuencia a varias variables de golpe:
x, y = (10, 20)
print(x, y) # 10 20
primero, *resto = [1, 2, 3, 4]
print(primero) # 1
print(resto) # [2, 3, 4]
Errores comunes
lista = [1, 2, 3]
lista[10] # IndexError: fuera de rango
resultado = lista.append(4)
print(resultado) # None → append MUTA la lista, no devuelve nada
lista = lista.append(4) # ERROR clásico: ahora lista es None
copias = lista # ¡esto NO copia! ambas nombres apuntan a la MISMA lista
copia_real = lista.copy() # así se copia de verdad
Resumen
- Las listas son mutables; las tuplas inmutables
append()agrega al final (muta, devuelveNone)max/min/sum/sorted/inson tus herramientas de análisis rápidas- El desempaquetado
a, b = tuplaasigna múltiples variables a la vez lista.copy()para copiar de verdad;=solo crea otro nombre