Listas y diccionarios: trabaja con colecciones de datos
Un programa de verdad raramente trabaja con un solo dato. Trabaja con listas de clientes, colecciones de productos, registros de usuarios. Python tiene dos estructuras para esto que usarás en prácticamente cada proyecto: las listas y los diccionarios.
Listas
Una lista es una secuencia ordenada de elementos. Puede contener tipos mixtos, aunque en la práctica suelen ser del mismo tipo.
nombres = ["Ana", "Carlos", "María", "Joaquín"]
precios = [9.99, 49.90, 19.99, 99.00]
mixta = [42, "texto", True, 3.14] # posible pero raro
Acceso y modificación
print(nombres[0]) # "Ana" — el índice empieza en 0
print(nombres[-1]) # "Joaquín" — el último elemento
nombres[1] = "Pedro" # modifica el segundo elemento
print(nombres[1:3]) # ["Pedro", "María"] — slice (del 1 al 3, sin incluir)
Métodos más usados
nombres.append("Laura") # añade al final
nombres.insert(0, "Zara") # inserta en la posición 0
nombres.remove("Ana") # elimina la primera "Ana"
eliminado = nombres.pop() # elimina y devuelve el último
nombres.sort() # ordena alfabéticamente (modifica la lista)
ordenada = sorted(nombres) # devuelve una lista nueva ordenada
print(len(nombres)) # número de elementos
print("Laura" in nombres) # True/False — pertenencia
Diccionarios
Un diccionario almacena pares clave-valor. Es la estructura ideal cuando necesitas acceder a datos por un nombre, no por una posición.
usuario = {
"nombre": "María García",
"email": "maria@ejemplo.com",
"edad": 28,
"activo": True
}
Acceso y modificación
print(usuario["nombre"]) # "María García"
print(usuario.get("telefono", "No registrado")) # clave inexistente → valor por defecto
usuario["ciudad"] = "Madrid" # añade clave nueva
usuario["edad"] = 29 # modifica valor existente
del usuario["activo"] # elimina la clave
Iterar sobre un diccionario
for clave, valor in usuario.items():
print(f"{clave}: {valor}")
print(usuario.keys()) # todas las claves
print(usuario.values()) # todos los valores
Lista de diccionarios — el patrón más útil
productos = [
{"nombre": "Curso Python", "precio": 0, "lecciones": 8},
{"nombre": "Curso IA PHP", "precio": 0, "lecciones": 7},
{"nombre": "Curso Symfony", "precio": 0, "lecciones": 6},
]
for p in productos:
print(f"{p['nombre']} — {p['lecciones']} lecciones — {p['precio']}€")
Ejercicio práctico
Crea agenda.py:
contactos = []
def añadir(nombre, telefono):
contactos.append({"nombre": nombre, "telefono": telefono})
def buscar(nombre):
for c in contactos:
if c["nombre"].lower() == nombre.lower():
return c["telefono"]
return "No encontrado"
añadir("Ana", "600111222")
añadir("Carlos", "611333444")
añadir("María", "622555666")
consulta = input("¿A quién buscas? ")
print(f"Teléfono: {buscar(consulta)}")
Checklist antes de marcar completada
- Sabes la diferencia entre lista (acceso por índice) y diccionario (acceso por clave).
- Dominas
append,remove,popylenen listas. - Sabes acceder a claves de un diccionario con
.get()para evitar errores. - Has ejecutado y entendido
agenda.py.
Última lección: lo que puedes hacer ahora con Python y los siguientes pasos reales — IA, datos, automatización. Además desbloqueas tu certificado.
📝 Comprueba lo aprendido
Responde estas 4 preguntas y acierta al menos el 60% para desbloquear el botón "Marcar como completada".