Tuplas en Python

En Python, las tuplas son colecciones ordenadas e inmutables de elementos. A diferencia de las listas, una vez que una tupla es creada, no se puede modificar. Las tuplas se utilizan cuando se necesita una colección de elementos que no deben cambiar a lo largo del tiempo. Se definen utilizando paréntesis () y los elementos están separados por comas.

Creación de tuplas

Tuplas básicas:

tupla_vacia = ()
tupla_un_elemento = (1,)
tupla = (1, 2, 3, 4, 5)

Tuplas con diferentes tipos de datos:

mi_tupla = (1, "hola", 3.14, True, None)

Tuplas anidadas:

tupla_anidada = ((1, 2, 3), ("a", "b", "c"), (True, False))

Ejemplo usando tuplas:

# Ejemplo 1: Tupla básica
tupla = (1, 2, 3, 4, 5)
print(tupla)
# Salida en la Terminal: (1, 2, 3, 4, 5)

# Ejemplo 2: Tupla con diferentes tipos de datos
mi_tupla = (1, "hola", 3.14, True, None)
print(mi_tupla)
# Salida en la Terminal: (1, "hola", 3.14, True, None)

# Ejemplo 3: Tupla anidada
tupla_anidada = ((1, 2, 3), ("a", "b", "c"), (True, False))
print(tupla_anidada)
# Salida en la Terminal: ((1, 2, 3), ("a", "b", "c"), (True, False))

Acceso a elementos y subtuplas

Acceso a elementos individuales: Las tuplas, al igual que las listas, son indexadas, lo que significa que cada elemento tiene un número de posición, comenzando desde 0 para el primer elemento.

tupla = (10, 20, 30, 40, 50)
print(tupla[0])  # 10
print(tupla[-1]) # 50

Acceso a subtuplas (slicing): El slicing permite acceder a una porción de la tupla especificando un rango de índices.

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

En Python, las tuplas son similares a las listas en cuanto a la forma en que puedes acceder a sus elementos, aunque las tuplas son inmutables. Aquí te muestro las formas más comunes de acceder a los elementos de una tupla:

  1. Acceder por índice: Puedes acceder a un elemento de la tupla utilizando su índice.

    
    tupla = ("Juan", "Pepe", "Carlos", "Bastian")
    print(tupla[1])  # Imprimirá "Pepe"
    
    
  2. Acceso inverso por índice: Puedes usar índices negativos para acceder a los elementos desde el final de la tupla.

    
    print(tupla[-1])  # Imprimirá "Bastian"
    print(tupla[-2])  # Imprimirá "Carlos"
    
    
  3. Slicing (rebanado): Puedes obtener una subtupla utilizando slicing.

    
    print(tupla[1:3])  # Imprimirá ("Pepe", "Carlos")
    print(tupla[:2])   # Imprimirá ("Juan", "Pepe")
    print(tupla[2:])   # Imprimirá ("Carlos", "Bastian")
    print(tupla[:])    # Imprimirá ("Juan", "Pepe", "Carlos", "Bastian")
    print(tupla[::2])  # Imprimirá ("Juan", "Carlos")