1.3 – Colecciones

Las colecciones en Python son estructuras de datos diseñadas para almacenar grupos de información y manipularlos de forma eficiente. Son el equivalente a cajas especializadas: algunas mantienen el orden, otras eliminan duplicados, otras asocian claves con valores.

Python ofrece cuatro colecciones fundamentales:

  • Listas (list) → secuencias ordenadas y modificables
  • Tuplas (tuple) → secuencias ordenadas e inmutables
  • Conjuntos (set) → colecciones sin duplicados
  • Diccionarios (dict) → pares clave-valor

Elegir bien la colección correcta es una habilidad esencial. No es solo sintaxis: es pensamiento estructurado.


Listas (list)

Una lista es una colección ordenada y modificable que permite duplicados.

  • Mantienen el orden de inserción
  • Son mutables (se pueden modificar)
  • Permiten duplicados
  • Admiten cualquier tipo de dato

Crear y usar listas

mi_lista = [1, 2, 3, 4, 5]print(mi_lista[0])      # 1
print(mi_lista[-1]) # 5

Modificar elementos

mi_lista[1] = 10
print(mi_lista)

Añadir elementos

mi_lista.append(6)      # Añade al final
mi_lista.insert(0, 99) # Inserta en posición

Eliminar elementos

mi_lista.remove(10)     # Elimina por valor
mi_lista.pop() # Elimina último
del mi_lista[0] # Elimina por índice

Slicing (rebanado)

numeros = [10,20,30,40,50]print(numeros[1:4])   # [20,30,40]
print(numeros[:3]) # [10,20,30]
print(numeros[::2]) # [10,30,50]

List Comprehension (forma elegante)

cuadrados = [x**2 for x in range(6)]
print(cuadrados)

Tuplas (tuple)

Una tupla es una colección ordenada e inmutable. Una vez creada, no cambia.

  • Ordenadas
  • Inmutables
  • Permiten duplicados
  • Más eficientes y seguras que listas

Uso típico: datos constantes

coordenadas = (10.0, 20.0)
print(coordenadas[0])

Desempaquetado

x, y = coordenadas
print(x, y)

Tupla de un solo elemento (detalle raro)

t = (5,)   # sin coma NO es tupla

Conjuntos (set)

Un set es una colección sin orden y sin duplicados. Perfecta para matemáticas y limpieza de datos.

  • No ordenados
  • No permiten duplicados
  • Mutables
  • Muy rápidos en búsquedas

Crear y usar sets

s = {1,2,3,4}
s.add(5)
s.remove(2)

Operaciones matemáticas

a = {1,2,3}
b = {2,3,4}print(a | b) # Unión
print(a & b) # Intersección
print(a - b) # Diferencia
print(a ^ b) # Diferencia simétrica

Eliminar duplicados manteniendo orden

lista = [1,2,2,3,4,4,5]
sin_dup = list(dict.fromkeys(lista))
print(sin_dup)

Diccionarios (dict)

Un diccionario almacena pares clave → valor. Es como una base de datos en miniatura.

  • Acceso por clave
  • Mutables
  • Claves únicas
  • Muy rápidos

Crear diccionario

persona = {
"nombre": "Juan",
"edad": 25,
"ciudad": "Madrid"
}

Acceder

print(persona["nombre"])
print(persona.get("edad"))

Modificar / Añadir

persona["edad"] = 26
persona["profesion"] = "Ingeniero"

Eliminar

persona.pop("ciudad")
del persona["edad"]

Recorrer diccionario

for clave, valor in persona.items():
print(clave, valor)

Operaciones comunes y trucos reales

Copia

a = [1,2,3]
b = a.copy() # copia independiente

Ordenar listas

nums = [5,2,8,1]
nums.sort()
print(nums)ordenados = sorted(nums, reverse=True)

Comprobar pertenencia

if 3 in nums:
print("Existe")

Longitud

len(nums)

Comparación de colecciones

ColecciónOrdenadaMutableDuplicadosUso típico
ListaSecuencias generales
TuplaNoDatos constantes
SetNoNoEliminar duplicados
DictSí*Claves únicasAsociación clave-valor

*Desde Python 3.7 mantienen orden de inserción.


Ejemplos guiados

Acceder al tercer elemento

numeros = [10,20,30,40,50]
tercer = numeros[2]
print(tercer)

Último elemento de una tupla

colores = ("rojo","verde","azul")
print(colores[-1])

Eliminar duplicados

nums = [1,2,2,3,4,4,5]
print(list(set(nums)))

Añadir clave a diccionario

persona = {"nombre":"Ana","edad":30}
persona["ciudad"] = "Barcelona"
print(persona)

Ejercicios

Listas

  1. Crea una lista del 1 al 5 y muestra primero y último.
  2. Cambia «pera» por «uva» en ["manzana","pera","naranja"].
  3. Añade tres números a [10,20,30].

Tuplas

  1. Crea tupla con tres ciudades.
  2. Extrae el segundo valor de (100,200,300).
  3. Crea tupla vacía y explica cómo añadir valores.

Sets

  1. Crea {1,2,3} y añade 4.
  2. Comprueba si 5 está en {1,2,3,4}.
  3. Intersección {1,2,3} y {2,3,4}.

Diccionarios

  1. Crea diccionario con nombre, edad y ciudad.
  2. Cambia un valor.
  3. Elimina una clave.