Estructuras de datos con Python en 8 minutos: Listas, Tuplas, Conjuntos y Diccionarios
Tutorial de Estructuras de Datos en Python 🐍
Introducción
¿No has tenido suficiente con este vídeo? ¿Tu ambición no tiene límites? ¿O es que tienes que aprobar ese examen que sí te tiene al límite? Sea lo que sea, empecemos...
📋 Listas
En el vídeo anterior hablamos sobre las listas, pero ahora vamos a profundizar en ellas.
Características de las listas:
Secuencia de datos ordenados (la posición importa)
Heterogénea (puede contener distintos tipos de datos)
Mutable (podemos cambiar la secuencia)
# Para crear una lista se usan corchetes
lista_vacia = [] # esto sería una lista vacía
# Lista con distintos tipos de datos
mi_lista = [1, "hola", 3.14, True, [1, 2, 3]]
print(mi_lista) # visualizamos con print
# Acceder a elementos usando índices
print(mi_lista[0]) # 1 (empezamos con el 0)
print(mi_lista[1]) # "hola"
print(mi_lista[2]) # 3.14
# print(mi_lista[5]) # Error: índice fuera de límite
# Índices negativos (acceso desde el final)
print(mi_lista[-1]) # [1, 2, 3] (último elemento)
print(mi_lista[-2]) # True (penúltimo elemento)
# Sublistas (slicing)
sub_lista = mi_lista[1:4] # desde el índice 1 hasta el 3
print(sub_lista) # ['hola', 3.14, True]
# Modificar elementos
mi_lista[2] = "python" # cambiamos el tercer elemento
print(mi_lista) # [1, 'hola', 'python', True, [1, 2, 3]]
# Métodos útiles de listas
mi_lista.append("nuevo") # agrega elemento al final
print(mi_lista.count(1)) # cuenta apariciones del elemento
print(mi_lista.index("hola")) # posición de la primera aparición
mi_lista.remove(True) # elimina la primera aparición del elemento🔒 Tuplas
Características de las tuplas:
Secuencia ordenada
Heterogénea
Inmutable (no se puede modificar una vez creada)
# Para crear una tupla usamos paréntesis
tupla_vacia = () # tupla vacía
# Tupla con elementos
mi_tupla = (1, "hola", 3.14, True)
print(mi_tupla)
# Acceder a elementos (igual que las listas)
print(mi_tupla[1]) # "hola"
print(mi_tupla[-1]) # True
# Las tuplas son inmutables
# mi_tupla[0] = 5 # Error: no se puede modificar
# Métodos de tuplas
print(mi_tupla.count("hola")) # cuenta apariciones
print(mi_tupla.index(3.14)) # posición del elemento
# Tupla de un solo elemento (necesita coma)
tupla_un_elemento = (5,) # esto es una tupla
no_tupla = (5) # esto es solo el número 5🎯 Conjuntos (Sets)
Características de los conjuntos:
Colección no ordenada
Heterogénea (solo con elementos inmutables)
Mutable
Sin elementos repetidos
# Para crear conjuntos usamos set()
conjunto_vacio = set() # conjunto vacío
# Conjunto a partir de una lista
mi_conjunto = set([1, 2, 3, 2, 1]) # elimina duplicados
print(mi_conjunto) # {1, 2, 3}
# Conjunto a partir de una tupla
conjunto_tupla = set((1, 2, 3))
print(conjunto_tupla)
# Conjunto a partir de un string (crea conjunto de caracteres)
conjunto_string = set("hola")
print(conjunto_string) # {'h', 'o', 'l', 'a'}
# Métodos para modificar conjuntos
mi_conjunto.add(4) # añadir elemento
print(mi_conjunto) # {1, 2, 3, 4}
mi_conjunto.remove(2) # eliminar elemento
print(mi_conjunto) # {1, 3, 4}
# Operaciones de conjuntos
conjunto1 = {1, 2, 3, 4}
conjunto2 = {3, 4, 5, 6}
# Intersección (elementos comunes)
interseccion = conjunto1.intersection(conjunto2)
print(interseccion) # {3, 4}
# Equivalente con operador &
interseccion_operador = conjunto1 & conjunto2
print(interseccion_operador) # {3, 4}
# Subconjunto
conjunto3 = {3, 4}
print(conjunto3.issubset(conjunto1)) # True
print(conjunto3.issubset(conjunto2)) # True📖 Diccionarios
Características de los diccionarios:
Relacionan pares clave-valor (key-value)
No tiene orden
Heterogéneo con clave inmutable
Mutable
# Crear diccionario vacío
diccionario_vacio = {} # o dict()
# Diccionario con elementos
mi_diccionario = {
"nombre": "Ana",
"edad": 25,
"ciudad": "Madrid"
}
print(mi_diccionario)
# Acceder a valores
print(mi_diccionario["nombre"]) # "Ana"
print(mi_diccionario.get("edad")) # 25
# Modificar valores
mi_diccionario["edad"] = 26
print(mi_diccionario["edad"]) # 26
# Añadir nuevo par clave-valor
mi_diccionario["profesion"] = "programadora"
print(mi_diccionario)
# Otras formas de crear diccionarios
# Usando dict() con lista de tuplas
diccionario_tuplas = dict([("a", 1), ("b", 2), ("c", 3)])
print(diccionario_tuplas)
# Usando claves como strings (método más común)
diccionario_directo = dict(a=1, b=2, c=3)
print(diccionario_directo)
# Métodos útiles
claves = mi_diccionario.keys() # vista de las claves
valores = mi_diccionario.values() # vista de los valores
pares = mi_diccionario.items() # vista de pares clave-valor
print(list(claves)) # ['nombre', 'edad', 'ciudad', 'profesion']
print(list(valores)) # ['Ana', 26, 'Madrid', 'programadora']
print(list(pares)) # [('nombre', 'Ana'), ('edad', 26), ...]
# Eliminar elemento
valor_eliminado = mi_diccionario.pop("ciudad")
print(valor_eliminado) # "Madrid"
print(mi_diccionario) # sin la clave "ciudad"💡 Ejercicios Prácticos
Ejercicio 1: ¿Cuál es la salida de este código?
lista = [1, 2, 3, 4, 5]
resultado = lista[1:4] + lista[-2:-1]
print(resultado)Ejercicio 2: ¿Qué muestra este código?
tupla = (1, 2, 3, 2, 1)
resultado = tupla.count(2) + tupla.index(3)
print(resultado)Ejercicio 3: ¿Cuál es el resultado?
conjunto_a = {1, 2, 3}
conjunto_b = {3, 4, 5}
resultado = conjunto_a | conjunto_b
print(resultado)Ejercicio 4: ¿Qué devuelve este código?
diccionario = {"a": 1, "b": 2, "c": 3}
resultado = list(diccionario.values())[1] + list(diccionario.keys())[0]
print(resultado)🎓 Conclusión
¡Y hasta aquí el tutorial! Recuerda que la práctica es esencial para dominar estas estructuras de datos. Te dejo el enlace de Colab en la descripción donde he realizado todo lo que has visto, además de las soluciones a los ejercicios.
¡Dale al botón de suscribirte si quieres más contenido! (Es broma, voy a hacerlo te suscribas o no, pero oye... ¡es gratis! ¡Púlsalo!)
Comentarios
Publicar un comentario