2: Estructuras de Datos
2.1 Listas: Tu primera colección de datos
Una lista es una de las estructuras de datos más versátiles y comúnmente usadas en Python. Piensa en una lista como un cajón que puede guardar una colección de objetos en un orden específico. Cada objeto, o elemento, tiene un lugar único, que se identifica por su índice.
Características principales de las listas:
- Ordenadas: Los elementos tienen un orden fijo y definido.
- Modificables: Puedes añadir, eliminar o cambiar elementos.
- Permiten duplicados: Pueden contener el mismo valor más de una vez.
Crear y acceder a listas
Las listas se definen usando corchetes []
, con los elementos separados por comas. El primer elemento tiene el índice 0
, el segundo el 1
, y así sucesivamente.
# Crear una lista de frutas
frutas = ["manzana", "banana", "uva", "naranja"]
# Acceder a un elemento por su índice
print(frutas[0]) # Salida: manzana
print(frutas[2]) # Salida: uva
# También puedes usar índices negativos para acceder desde el final
print(frutas[-1]) # Salida: naranja
Métodos comunes de listas
Python ofrece varios métodos para trabajar con listas.
-
append()
: Añade un elemento al final de la lista.frutas.append("kiwi") print(frutas) # Salida: ['manzana', 'banana', 'uva', 'naranja', 'kiwi']
-
insert()
: Inserta un elemento en una posición específica.frutas.insert(1, "mango") print(frutas) # Salida: ['manzana', 'mango', 'banana', 'uva', 'naranja', 'kiwi']
-
remove()
: Elimina la primera ocurrencia de un valor.frutas.remove("uva") print(frutas) # Salida: ['manzana', 'mango', 'banana', 'naranja', 'kiwi']
-
pop()
: Elimina y devuelve el elemento en un índice dado.fruta_eliminada = frutas.pop(0) print(fruta_eliminada) # Salida: manzana print(frutas) # Salida: ['mango', 'banana', 'naranja', 'kiwi']
2.2 Tuplas: Colecciones inmutables
Una tupla es similar a una lista, pero con una diferencia clave: ¡es inmutable! Esto significa que una vez que la creas, no puedes cambiar, añadir o eliminar sus elementos. Piensa en una tupla como una lista que está "congelada".
Características principales de las tuplas:
- Ordenadas: Al igual que las listas, mantienen un orden definido.
- Inmutables: No se pueden modificar una vez creadas.
- Permiten duplicados: Pueden contener valores repetidos.
Crear y usar tuplas
Las tuplas se definen usando paréntesis ()
. Se usan a menudo para agrupar datos que no deberían cambiar, como coordenadas o datos de un registro.
# Crear una tupla de coordenadas
coordenadas = (10.5, 20.3)
# Acceder a los elementos (igual que en las listas)
print(coordenadas[0]) # Salida: 10.5
# Intentar modificarla resultará en un error
# coordenadas[0] = 12.0 # Esto causará un TypeError
2.3 Diccionarios: Datos con clave y valor
Un diccionario es una estructura de datos que almacena información en pares de clave-valor. A diferencia de las listas y tuplas, donde accedes a los datos por un índice numérico, en un diccionario accedes a los valores a través de sus claves, que pueden ser cadenas de texto o números.
Características principales de los diccionarios:
- No ordenados (en versiones anteriores a Python 3.7): El orden de inserción no está garantizado.
- Modificables: Puedes añadir, cambiar o eliminar pares clave-valor.
- Las claves deben ser únicas: No puedes tener dos claves iguales.
Crear y manipular diccionarios
Los diccionarios se definen usando llaves {}
. Cada par clave-valor se separa por dos puntos :
.
# Crear un diccionario de un usuario
usuario = {
"nombre": "Carlos",
"edad": 35,
"ciudad": "Madrid"
}
# Acceder a un valor a través de su clave
print(usuario["nombre"]) # Salida: Carlos
# Añadir un nuevo par clave-valor
usuario["email"] = "carlos@ejemplo.com"
print(usuario) # Salida: {'nombre': 'Carlos', 'edad': 35, 'ciudad': 'Madrid', 'email': 'carlos@ejemplo.com'}
# Modificar un valor existente
usuario["edad"] = 36
print(usuario) # Salida: {'nombre': 'Carlos', 'edad': 36, 'ciudad': 'Madrid', 'email': 'carlos@ejemplo.com'}
# Eliminar un par clave-valor
del usuario["ciudad"]
print(usuario) # Salida: {'nombre': 'Carlos', 'edad': 36, 'email': 'carlos@ejemplo.com'}
2.4 Conjuntos: Colecciones sin duplicados
Un conjunto (o set
) es una colección desordenada de elementos únicos. Los conjuntos son útiles cuando necesitas almacenar una colección de elementos y asegurarte de que no haya duplicados.
Características principales de los conjuntos:
- No ordenados: Los elementos no tienen un índice.
- Únicos: No permiten elementos duplicados.
- Modificables: Puedes añadir o eliminar elementos.
Crear y usar conjuntos
Los conjuntos se definen usando llaves {}
o la función set()
. Si intentas añadir un elemento que ya existe, no hará nada.
# Crear un conjunto con algunos duplicados (se eliminarán automáticamente)
numeros = {1, 2, 3, 2, 4, 1, 5}
print(numeros) # Salida: {1, 2, 3, 4, 5}
# Añadir un nuevo elemento
numeros.add(6)
print(numeros) # Salida: {1, 2, 3, 4, 5, 6}
# Eliminar un elemento
numeros.remove(3)
print(numeros) # Salida: {1, 2, 4, 5, 6}
Este módulo te ha dado una visión general de las principales estructuras de datos en Python. Elegir la estructura correcta es crucial para escribir código eficiente y organizado. ¿Qué te parece si continuamos con el siguiente módulo para dominar el control de flujo y la lógica de programación?