Tuplas y Diccionarios en Python
Python es un lenguaje de programación ampliamente utilizado debido a su simplicidad y versatilidad. Dos de las estructuras de datos más comunes y útiles en Python son las tuplas y los diccionarios. Ambas estructuras permiten almacenar y manipular datos de manera eficiente, pero tienen características y usos distintos.

Tuplas en Python
Características de las Tuplas
- Inmutables: No se pueden modificar después de ser creadas.
- Ordenadas: Los elementos tienen un orden definido y se pueden acceder mediante índices.
- Heterogéneas: Pueden almacenar elementos de diferentes tipos (números, cadenas, listas, etc.).
- Rapidez: Más rápidas que las listas, debido a su inmutabilidad.
- Hashable: Pueden usarse como claves en un diccionario si todos sus elementos también son hashables.
Sintaxis para Crear Tuplas
Las tuplas son colecciones ordenadas e inmutables de elementos. Esto significa que, una vez creadas, sus valores no pueden modificarse. Se definen principalmente usando paréntesis ()
y pueden contener elementos de diferentes tipos, incluyendo objetos como listas o diccionarios. Aunque es posible declararlas sin paréntesis, esto no se recomienda ya que reduce la legibilidad del código.
# Tupla vacía
tupla_vacia = ()
# Tupla con un solo elemento (requiere una coma al final)
tupla_un_elemento = (42,)
# Tupla con varios elementos
tupla_varios = (1, "Hola", 3.14, [1, 2, 3])
# Tupla sin paréntesis (desempaquetado implícito)
tupla_implicita = 1, "Python", True
Acceso a Elementos
Se realiza mediante índices (empezando en 0).
tupla = (10, 20, 30, 40)
# Acceder al primer elemento
print(tupla[0]) # Salida: 10
# Acceder al último elemento
print(tupla[-1]) # Salida: 40
# Acceder a un rango
print(tupla[1:]) # Salida: 20, 30, 40
print(tupla[:-2]) # Salida: 10, 20
Operaciones Comunes
Aunque las tuplas son inmutables, se pueden realizar varias operaciones con ellas.
- Longitud:
print(len(tupla)) # Salida: 4
- Concatenación:
tupla1 = (1, 2) tupla2 = (3, 4) print(tupla1 + tupla2) # Salida: (1, 2, 3, 4)
- Repetición:
tupla = (1, 2) print(tupla * 3) # Salida: (1, 2, 1, 2, 1, 2)
- Pertenencia:
print(3 in tupla) # Salida: False
- Desempaquetado:
tupla = (1, 2, 3) a, b, c = tupla print(a, b, c) # Salida: 1 2 3
Métodos de las Tuplas
Las tuplas tienen pocos métodos debido a su naturaleza inmutable.
- count(): Devuelve cuántas veces aparece un elemento.
tupla = (1, 2, 2, 3) print(tupla.count(2)) # Salida: 2
- index(): Devuelve el índice de la primera aparición de un elemento.
print(tupla.index(2)) # Salida: 1
Ejemplo Práctico
Un ejemplo típico del uso de tuplas es para representar coordenadas o datos constantes.
# Coordenadas de un punto
coordenadas = (10.5, 20.3)
# Acceso
x, y = coordenadas
print(f"X: {x}, Y: {y}") # Salida: X: 10.5, Y: 20.3
Ventajas de las Tuplas
- Seguridad: Al ser inmutables, garantizan que los datos no cambien accidentalmente.
- Eficiencia: Son más rápidas que las listas.
- Usabilidad en estructuras complejas: Por ejemplo, como claves en un diccionario.
Diccionarios en Python
En Python, los diccionarios son estructuras de datos que permiten almacenar pares de clave-valor. Se utilizan cuando es necesario relacionar datos, donde cada clave actúa como un identificador único para un valor asociado. Los diccionarios son mutables, lo que significa que pueden modificarse después de su creación, y son muy eficientes para búsquedas y manipulaciones basadas en claves.
Características Principales de los Diccionarios
- Claves únicas: Cada clave en el diccionario debe ser única.
- Claves inmutables: Solo tipos inmutables como cadenas, números y tuplas (si no contienen elementos mutables) pueden ser claves.
- Acceso rápido: Acceder a un valor por su clave es muy eficiente.
Cómo Crear un Diccionario
- Usando llaves {}:
mi_diccionario = {"nombre": "Carlos", "edad": 30, "ciudad": "Bogotá"}
- Usando la función dict():
mi_diccionario = dict(nombre="Carlos", edad=30, ciudad="Bogotá")
Operaciones Comunes
- Acceder a elementos:
- Se utiliza la clave:
print(mi_diccionario["nombre"]) # Output: Carlos
- Usando la función dict(): Si una clave no existe, el método
get()
devuelveNone
(o un valor por defecto especificado):print(mi_diccionario.get("profesión", "No especificada")) # Output: No especificada
- Se utiliza la clave:
- Agregar o actualizar elementos:
mi_diccionario["profesión"] = "Ingeniero" # Agrega una nueva clave-valor mi_diccionario["edad"] = 31 # Actualiza el valor de una clave existente
- Eliminar elementos:
- Con
del:del mi_diccionario["ciudad"]
- Con
.pop()(devuelve el valor eliminado):edad = mi_diccionario.pop("edad")
- Con
- Iterar sobre un diccionario:
- Claves:
for clave in mi_diccionario: print(clave)
- Valores:
for valor in mi_diccionario.values(): print(valor)
- Pares clave-valor:
for valor in mi_diccionario.values(): print(valor)
- Claves:
- Comprobar si una clave existe:
if "nombre" in mi_diccionario: print("La clave 'nombre' está en el diccionario.")
- Copiar un diccionario:
nuevo_diccionario = mi_diccionario.copy()
Ejemplo Completo
persona = {
"nombre": "Ana",
"edad": 25,
"ocupación": "Diseñadora"
}
# Acceder y modificar datos
print(persona["nombre"]) # Output: Ana
persona["edad"] += 1 # Incrementar edad
# Agregar nueva información
persona["ciudad"] = "Medellín"
# Iterar sobre el diccionario
for clave, valor in persona.items():
print(f"{clave}: {valor}")
# Eliminar un dato
persona.pop("ocupación")
Métodos Útiles
-
keys()
: Devuelve todas las claves.mi_diccionario = {"gato": "chat", "perro": "chien", "caballo": "cheval"} for key in mi_diccionario.keys(): print(key, "->", mi_diccionario[key]) # Salida: gato -> chat # Salida: perro -> chien # Salida: caballo -> cheval
-
items()
: Devuelve pares clave-valor.mi_diccionario = {"gato": "chat", "perro": "chien", "caballo": "cheva for spanish, french in mi_diccionario.items(): print(spanish, "->", french) # Salida: gato -> chat # Salida: perro -> chien # Salida: caballo -> cheval
-
values()
: Devuelve todos los valores. -
clear()
: Elimina todos los elementos. -
update()
: Combina otro diccionario o pares clave-valor.