Volver

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
python
numeros = [1, 2, 3, 4]
nombres = ["Ana", "Luis", "María"]
mixta = [1, "hola", True]
  • Acceder a elementos (índices desde 0)
python
nombres = ["Ana", "Luis", "María"]
print(nombres[0])  # Ana
print(nombres[2])  # María
  • Modificar elementos
python
numeros = [10, 20, 30]
numeros[1] = 25
print(numeros)  # [10, 25, 30]
  • Agregar y quitar elementos
python
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
python
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
python
coordenada = (10, 20)
persona = ("Ana", 25)
  • Acceder a elementos
python
persona = ("Ana", 25)
print(persona[0])  # Ana
print(persona[1])  # 25
  • No se pueden cambiar
python
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
python
persona = {
    "nombre": "Ana",
    "edad": 25,
    "ciudad": "Madrid"
}
  • Acceder a un valor por su clave
python
print(persona["nombre"])  # Ana
print(persona["edad"])    # 25
  • Agregar o modificar valores
python
persona["edad"] = 26                # modificar
persona["profesion"] = "Ingeniera"  # agregar nueva clave

print(persona)
  • Recorrer un diccionario
python
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

python
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.")
  • self representa al propio objeto (similar a "yo mismo").
  • nombre y edad se guardan dentro del objeto como atributos.

4.2. Crear objetos (instancias)

python
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.

python
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:

python
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.