Módulo BASICOLección 07 de 12

Listas y tuplas

Colecciones ordenadas: mutables las listas, inmutables las tuplas.

01

Teoría y Fundamentos

Lee y asimila los conceptos clave antes de evaluar

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

Las listas cuentan con un repertorio completo de métodos para alterar su contenido:

numeros = [3, 1, 2]

# Agregar elementos
numeros.append(4)        # [3, 1, 2, 4] → agrega un único elemento al final
numeros.insert(0, 0)     # [0, 3, 1, 2, 4] → inserta en una posición (índice, valor)
numeros.extend([5, 6])   # [0, 3, 1, 2, 4, 5, 6] → añade todos los elementos de un iterable

# Eliminar elementos
numeros.remove(1)        # elimina la PRIMERA aparición del valor (lanza ValueError si no existe)
ultimo = numeros.pop()   # quita y devuelve el último elemento (o numeros.pop(i) en el índice i)
del numeros[0]           # instrucción 'del' para borrar por índice o rebanada
numeros[0] = 99          # reasignación por índice
numeros.clear()          # vacía la lista por completo dejándola en []

# Búsqueda, conteo y ordenamiento
letras = ["b", "a", "c", "a", "d"]
print(letras.index("c")) # 2 → índice de la primera aparición
print(letras.count("a")) # 2 → cuántas veces se repite el valor
letras.reverse()         # invierte la lista en sitio (in-place)
letras.sort()            # ordena la lista en sitio (in-place)
letras.sort(reverse=True)# ordena de forma descendente

# Copia superficial
copia = letras.copy()    # crea una lista nueva independiente

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 (o comas) y no puede modificarse después:

coordenada = (10.5, 20.3)
un_solo_elemento = (42,)   # ¡OJO! La coma es obligatoria para tuplas de un elemento

coordenada[0]        # 10.5 → sí se puede leer
coordenada[0] = 5    # TypeError: ¡no se puede asignar!

Métodos de las tuplas

Al ser inmutables, las tuplas son más ligeras y eficientes en memoria, y solo tienen dos métodos:

  • tupla.count(valor): Cuenta cuántas veces se repite un elemento ((1, 2, 2, 3).count(2) → 2).
  • tupla.index(valor): Devuelve el índice de la primera aparición (("a", "b", "c").index("b") → 1).

¿Cuándo usar cada una?

  • Lista: colección homogénea que va a cambiar (ítems de un carrito, resultados).
  • Tupla: datos fijos que van juntos (coordenadas, RGB de un color, registros inmutables) y claves de diccionarios.

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

¿Terminaste de leer la teoría?

Marca este paso para registrar tu avance y saltar a las preguntas

02

Quiz de Comprobación

3 preguntas de comprensión rápida (requiere 70% para aprobar)

  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)?

03

Laboratorio de Código Python

2 ejercicios interactivos ejecutados en tu navegador

EJERCICIO 01Python 3.12

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

ejercicio_1.py
Tab: 4 spaces

Iniciando editor de código…

Ctrl/Cmd + Enter para ejecutar
EJERCICIO 02Python 3.12

Promedio

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

ejercicio_2.py
Tab: 4 spaces

Iniciando editor de código…

Ctrl/Cmd + Enter para ejecutar