Publicado el
Estructuras de datos en Python con ejemplos claros
10 min de lectura
Capítulo 1: Listas
Una lista es una colección ordenada de elementos que se puede modificar.
La usarás para guardar varios valores en una sola variable (números, textos, incluso otras listas).
- Cómo se crean
numeros = [1, 2, 3, 4]
nombres = ["Ana", "Luis", "María"]
mixta = [1, "hola", True]
- Acceder a elementos (índices desde 0)
nombres = ["Ana", "Luis", "María"]
print(nombres[0]) # Ana
print(nombres[2]) # María
- Modificar elementos
numeros = [10, 20, 30]
numeros[1] = 25
print(numeros) # [10, 25, 30]
- Agregar y quitar elementos
frutas = ["manzana", "pera"]
frutas.append("naranja") # agrega al final
print(frutas) # ["manzana", "pera", "naranja"]
frutas.remove("pera") # elimina por valor
print(frutas) # ["manzana", "naranja"]
ultima = frutas.pop() # quita y devuelve el último
print(ultima) # "naranja"
print(frutas) # ["manzana"]
- Recorrer una lista
numeros = [1, 2, 3, 4]
for n in numeros:
print(n)
Idea clave: lista = colección ordenada y cambiable.
Capítulo 2: Tuplas
Una tupla es como una lista, pero no se puede modificar (es inmutable).
Se usa cuando quieres agrupar datos que no deberían cambiar.
- Cómo se crean
coordenada = (10, 20)
persona = ("Ana", 25)
- Acceder a elementos
persona = ("Ana", 25)
print(persona[0]) # Ana
print(persona[1]) # 25
- No se pueden cambiar
persona = ("Ana", 25)
# persona[1] = 30 # Esto dará error: TypeError (no se puede modificar)
Idea clave: tupla = como una lista, pero fija, sin cambios.
Capítulo 3: Diccionarios
Un diccionario guarda datos en forma de clave → valor.
Ejemplo de la vida real: un diccionario de palabras y definiciones.
- Cómo se crean
persona = {
"nombre": "Ana",
"edad": 25,
"ciudad": "Madrid"
}
- Acceder a un valor por su clave
print(persona["nombre"]) # Ana
print(persona["edad"]) # 25
- Agregar o modificar valores
persona["edad"] = 26 # modificar
persona["profesion"] = "Ingeniera" # agregar nueva clave
print(persona)
- Recorrer un diccionario
for clave in persona:
print(clave, "→", persona[clave])
# También:
for clave, valor in persona.items():
print(clave, "=", valor)
Idea clave: diccionario = colección de pares clave–valor (como un mini "Excel" con dos columnas).
Capítulo 4: Clases y Objetos
Aquí empezamos con programación orientada a objetos (POO).
- Una clase es un molde o plantilla (por ejemplo:
Coche). - Un objeto es un ejemplo concreto de esa clase (por ejemplo: el coche de Ana).
4.1. Crear una clase
class Persona:
# El método __init__ se ejecuta al crear un objeto
def __init__(self, nombre, edad):
self.nombre = nombre # atributo
self.edad = edad # atributo
# Un método es una función dentro de la clase
def saludar(self):
print(f"Hola, me llamo {self.nombre} y tengo {self.edad} años.")
selfrepresenta al propio objeto (similar a "yo mismo").nombreyedadse guardan dentro del objeto como atributos.
4.2. Crear objetos (instancias)
persona1 = Persona("Ana", 25)
persona2 = Persona("Luis", 30)
persona1.saludar() # Hola, me llamo Ana y tengo 25 años.
persona2.saludar() # Hola, me llamo Luis y tengo 30 años.
Cada objeto (persona1, persona2) tiene sus propios valores de nombre y edad.
Capítulo 5: Objetos con listas y diccionarios
Puedes combinar todo: usar listas y diccionarios dentro de objetos.
class Alumno:
def __init__(self, nombre):
self.nombre = nombre
self.notas = [] # lista vacía para guardar notas
def agregar_nota(self, nota):
self.notas.append(nota)
def promedio(self):
if len(self.notas) == 0:
return 0
return sum(self.notas) / len(self.notas)
alumno1 = Alumno("María")
alumno1.agregar_nota(8)
alumno1.agregar_nota(9)
print(alumno1.nombre) # María
print(alumno1.notas) # [8, 9]
print(alumno1.promedio()) # 8.5
También podrías tener una lista de objetos:
alumnos = [
Alumno("María"),
Alumno("Juan"),
Alumno("Lucía"),
]
for alu in alumnos:
print("Alumno:", alu.nombre)
Idea clave: las clases y objetos te permiten organizar mejor tus datos y comportamiento cuando los programas crecen.
Resumen rápido
- Listas: colección ordenada, se puede modificar.
- Tuplas: colección ordenada, no se puede modificar.
- Diccionarios: pares clave → valor.
- Clases: molde o plantilla.
- Objetos: "cosas" creadas a partir de una clase, con sus propios datos y métodos.