Ejercicio 10 Tuplas (Colecciones)

Vamos a escribir el Ejercicio 10 Tuplas, que es un tipo de Colecciones. Es recomendable que este ejercicio lo escribas (trata de no copiarlo y pegarlo), lo ejecutas y revisas el resultado esperado. Después utiliza el debugger para ejecutar el programa paso por paso.

"""
Ejercicio 10 Tuplas
04/09/2025
Edito AHR
"""
# Las Tuplas son inmutables, no se pueden modificar, agregar o eliminar elementos una vez creadas
# Se definen con paréntesis () o sin ellos, separando los elementos por comas
tupla = ()
print(tupla)  # Imprime una tupla vacía
print(type(tupla))  # Imprime <class 'tuple'>
print(len(tupla))  # Imprime 0, ya que la tupla está vacía

# Crear una tupla con diferentes tipos de datos
tupla1 = (1, 2.5, "Hola", True, [1, 2, 3], (4, 5))
print(tupla1)  # Imprime la tupla con diferentes tipos de datos
print(type(tupla1))  # Imprime <class 'tuple'>
print(len(tupla1))  # Imprime 6, ya que la tupla tiene 6 elementos

# Acceder a elementos de la tupla
print(tupla1[0])  # Imprime 1, el primer elemento de la tupla
print(tupla1[2])  # Imprime "Hola", el tercer elemento de la tupla
print(tupla1[-1])  # Imprime (4, 5), el último elemento de la tupla
print(tupla1[4][1])  # Imprime 2, el segundo elemento de la lista dentro de la tupla
print(tupla1[5][0])  # Imprime 4, el primer elemento de la tupla dentro de la tupla

# Intentar modificar un elemento de la tupla (esto generará un error)

# Muestra todlos los elementos de la tupla a partir del indice 1 hasta el indice 4 (el 4 no se incluye)
print(tupla1[1:4])  # Imprime (2.5, 'Hola', True)
print(tupla1[:3])  # Imprime (1, 2.5, 'Hola')
print(tupla1[2:])  # Imprime ('Hola', True, [1, 2, 3], (4, 5))
print(tupla1[:])  # Imprime toda la tupla (1, 2.5, 'Hola', True, [1, 2, 3], (4, 5))
print(tupla1[::2])  # Imprime (1, 'Hola', [1, 2, 3]) los elementos en posiciones pares
print(tupla1[1::2])  # Imprime (2.5, True, (4, 5)) los elementos en posiciones impares
print(tupla1[::-1])  # Imprime (4, 5), [1, 2, 3], True, 'Hola', 2.5, 1) la tupla en orden inverso   
print(tupla1[-3:-1])  # Imprime (True, [1, 2, 3]) los elementos desde el tercer elemento desde el final hasta el penúltimo
print(tupla1[-1:-4:-1])  # Imprime ((4, 5), [1, 2, 3], True) los últimos tres elementos en orden inverso
print(tupla1[-4:])  # Imprime (True, [1, 2, 3], (4, 5)) los últimos cuatro elementos de la tupla
print(tupla1[:-4])  # Imprime (1, 2.5, 'Hola') todos los elementos excepto los últimos tres

# Verificar si un elemento está en la tupla
print("¿Está 'Hola' en la tupla?", "Hola" in tupla1)  # Imprime True
print("¿Está 10 en la tupla?", 10 in tupla1)  # Imprime False

# Devuelveme el índice de un elemento en la tupla
indice = tupla1.index("Hola") if "Hola" in tupla1 else -1
print("Índice de 'Hola':", indice)  # Imprime 2 
# Si el elemento no está en la tupla, devuelve -1
indice = tupla1.index("Adiós") if "Adiós" in tupla1 else -1
print("Índice de 'Adiós':", indice)  # Imprime -1   

# Si un elemento se repite en la tupla, devuelve el índice de la primera aparición
tupla2 = (1, 2, 3, 2, 4, 2)
indice = tupla2.index(2) if 2 in tupla2 else -1
print("Índice de 2 en tupla2:", indice)  # Imprime 1    

# Contar cuántas veces aparece un elemento en la tupla
tupla3 = (1, 2, 3, 2, 4, 2)
print("Cantidad de ocurrencias de 2 en tupla3:", tupla3.count(2))  # Imprime 3, ya que el número 2 aparece tres veces en la tupla   

# Cuantas veces aparece el elemento "Hola" en la tupla1
print("Cantidad de ocurrencias de 'Hola' en tupla1:", tupla1.count("Hola"))  # Imprime 1, ya que "Hola" aparece una vez en la tupla1
# Cuantas veces aparece el elemento "Adiós" en la tupla1
print("Cantidad de ocurrencias de 'Adiós' en tupla1:", tupla1.count("Adiós"))  # Imprime 0, ya que "Adiós" no aparece en la tupla1

# Cuantas veces aparece el elementos tiene la tupla2
print("Cantidad de elementos en tupla2:", len(tupla2))  # Imprime 6, ya que la tupla2 tiene 6 elementos
# Cuantas veces aparece el elementos tiene la tupla3
print("Cantidad de elementos en tupla3:", len(tupla3))  # Imprime 6, ya que la tupla3 tiene 6 elementos

# Convertir una tupla en una lista
tupla_a_lista = list(tupla1)
print("Tupla convertida a lista:", tupla_a_lista)  # Imprime la lista convertida de la tupla1
print(type(tupla_a_lista))  # Imprime <class 'list'>

# Convertir una lista en una tupla
lista_a_tupla = tuple(tupla_a_lista)
print("Lista convertida a tupla:", lista_a_tupla)  # Imprime la tupla convertida de la lista
print(type(lista_a_tupla))  # Imprime <class 'tuple'>

Veamos los resultados en la consola:

PS C:\Users\Codigo/Modulo 3/Capitulo_2/Ejercicio_10_Tuplas.py"
()
<class 'tuple'>
0
(1, 2.5, 'Hola', True, [1, 2, 3], (4, 5))
<class 'tuple'>
6
1
Hola
(4, 5)
2
4
(2.5, 'Hola', True)
(1, 2.5, 'Hola')
('Hola', True, [1, 2, 3], (4, 5))
(1, 2.5, 'Hola', True, [1, 2, 3], (4, 5))
(1, 'Hola', [1, 2, 3])
(2.5, True, (4, 5))
((4, 5), [1, 2, 3], True, 'Hola', 2.5, 1)
(True, [1, 2, 3])
((4, 5), [1, 2, 3], True)
('Hola', True, [1, 2, 3], (4, 5))
(1, 2.5)
¿Está 'Hola' en la tupla? True
¿Está 10 en la tupla? False
Índice de 'Hola': 2
Índice de 'Adiós': -1
Índice de 2 en tupla2: 1
Cantidad de ocurrencias de 2 en tupla3: 3
Cantidad de ocurrencias de 'Hola' en tupla1: 1
Cantidad de ocurrencias de 'Adiós' en tupla1: 0
Cantidad de elementos en tupla2: 6
Cantidad de elementos en tupla3: 6
Tupla convertida a lista: [1, 2.5, 'Hola', True, [1, 2, 3], (4, 5)]
<class 'list'>
Lista convertida a tupla: (1, 2.5, 'Hola', True, [1, 2, 3], (4, 5))
<class 'tuple'>