PythonAprende PythonDocumentación

Listas y tuplas

Colecciones ordenadas: mutables las listas, inmutables las tuplas.

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, devuelve None)
  • max/min/sum/sorted/in son tus herramientas de análisis rápidas
  • El desempaquetado a, b = tupla asigna múltiples variables a la vez
  • lista.copy() para copiar de verdad; = solo crea otro nombre

Quiz

  1. 1. ¿Cuál es la diferencia principal entre lista y tupla?

  2. 2. ¿Qué devuelve [10, 20, 30][-1]?

  3. 3. ¿Qué hace numeros.append(5)?

Ejercicios

Ejercicio 1: Estadísticas de una lista

Dada `numeros = [4, 8, 1, 2]`, imprime en una línea el máximo, el mínimo y la suma, separados por espacio. Resultado: 8 1 15

Cargando editor…

Ejercicio 2: Promedio

Completa la función para que devuelva el promedio de la lista (sin usar statistics). Pista: sum() y len().

Cargando editor…