Cómo crear y usar tuplas en Python

Una tupla es una colección de objetos Python inmutables. Puede contener elementos de cualquier tipo de datos arbitrario (entero, cadena, flotante, lista, etc.) lo que lo convierte en una estructura de datos flexible y potente. Es parte del lenguaje central de Python y se usa ampliamente en programas y proyectos de Python.

Crear una tupla

Se puede crear una tupla en Python encerrando todos los elementos separados por comas dentro del paréntesis () .

 t1 = (1, 2, 3, 4)
t2 = ("Make", "Use", "Of")
t3 = (1.2, 5.9, 5.4, 9.3)

Los elementos de la tupla son inmutables y ordenados. Permite valores duplicados y puede tener cualquier número de elementos. Incluso puedes crear una tupla vacía. Los elementos de una tupla pueden ser de cualquier tipo de datos (entero, flotante, cadenas, tupla, etc.).

Crear una tupla vacía

Se puede crear una tupla vacía utilizando paréntesis de apertura y cierre vacíos.

 emptyTuple = ()

Crear una tupla con un solo elemento

Para crear una tupla con solo 1 elemento, debe agregar una coma después del elemento para que Python lo reconozca como una tupla.

 # t1 is a tuple
t1 = ( 3.14, )
print( type(t1) )
# prints
<class 'tuple'>
 # t2 is not a tuple
t2 = ( 3.14 )
print( type(t2) )
# prints
<class 'float'>

Nota: la función type () devuelve el tipo de clase del objeto pasado como parámetro.

Al no usar una coma después del elemento da como resultado el tipo de clase de t2 como 'flotante', por lo que es obligatorio usar una coma después del elemento al crear una tupla con un solo valor.

Crear una tupla con diferentes tipos de datos

Los elementos de la tupla pueden ser de cualquier tipo de datos. Esta característica hace que la tupla sea versátil.

 tup1 = ( 'MUO', True, 3.9, 56, [1, 2, 3] )
print( tup1 )
# prints
('MUO', True, 3.9, 56, [1, 2, 3])

Crear una tupla usando el constructor tuple ()

Las tuplas también se pueden crear usando el constructor tuple () . Usando el constructor tuple () puede convertir secuencias como lista / diccionario en una tupla.

 tup1 = tuple( (1, 2, 3) )
print( tup1 )
# prints
(1, 2, 3)

Crear una tupla anidada

Las tuplas se pueden anidar fácilmente dentro de las otras tuplas. Puede anidar la tupla hasta el nivel que desee.

 tup1 = (1, 2, 3)
tup2 = ( 'Hello', tup1, 45 )
print( tup2 )
# prints
('Hello', (1, 2, 3), 45)

Acceder a elementos en una tupla

Puede acceder a los elementos de tupla utilizando el número de índice dentro de los corchetes. El número de índice comienza desde 0. Tuple también admite la indexación negativa:

  • -1: apunta al último elemento
  • -2: apunta al penúltimo elemento y así sucesivamente
 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
print( tup1[0] )
print( tup1[5] )
print( tup1[-1] )
print( tup1[-9] )
# prints
M
S
F
M

Cortar una tupla

Puede acceder a un rango de elementos en una tupla usando el operador de dos puntos : . Tuple también admite la operación de corte mediante índices negativos.

 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
# Prints elements from index 1(included) to index 6(excluded)
print( tup1[1:6] )
# Prints elements from start to index 8(excluded)
print( tup1[:8] )
# Prints elements from index 3(included) to the end
print( tup1[3:] )
# Prints elements from index -4(included) to index -1(excluded)
print( tup1[-4:-1] )
# prints
('A', 'K', 'E', 'U', 'S')
('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O')
('E', 'U', 'S', 'E', 'O', 'F')
('S', 'E', 'O')

Comprobación de si existe un elemento en una tupla

Puede verificar si un elemento existe en una tupla usando la palabra clave in .

 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
if 'M' in tup1:
print("Yes, the element M exists in the tuple")
else:
print("Element not found in the tuple !!")

# prints
Yes, the element M exists in the tuple

Actualizar tuplas

Dado que las tuplas son inmutables, no es posible cambiar su valor. Python arroja un TypeError si intenta actualizar la tupla.

 tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
tup1[0] = 'Z'
# Following error is thrown
tup1[0] = 'Z'
TypeError: 'tuple' object does not support item assignment

Pero hay un truco si desea actualizar su tupla.

Cambiar el valor de los elementos de una tupla mediante listas

Puede cambiar el valor de los elementos en su tupla usando listas en Python . Primero, tendrás que convertir la tupla en una lista. Luego modifique la lista como desee. Finalmente, convierta la lista de nuevo en una tupla.

 tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp[0] = 4
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(4, 2, 3)

Agregar elementos nuevos en una tupla mediante listas

Dado que las tuplas no se pueden cambiar, no es posible agregar nuevos elementos en una tupla. Python arrojará un error como:

 AttributeError: 'tuple' object has no attribute 'append

Nuevamente, puede usar nuestro truco (usando listas) para lidiar con esto. Primero, convierta la tupla en una lista. Luego agregue nuevos elementos a la lista. Finalmente, convierta la lista en una tupla.

Nota: el método append () se usa en Python para agregar un nuevo elemento al final de la lista.

 tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.append(4)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(1, 2, 3, 4)

Eliminar operación en tuplas

Como las tuplas no se pueden cambiar, no es posible eliminar ningún elemento de la tupla. Si desea eliminar la tupla completa, puede hacerlo usando la palabra clave del .

 tup1 = ( 1, 2, 3 )
del tup1

Pero puede usar el mismo truco (usando listas) que usó para cambiar y agregar elementos de tupla.

Eliminar elementos de una tupla mediante listas

Los elementos se pueden eliminar de la tupla usando listas en 3 sencillos pasos:

Paso 1: convierte la tupla en una lista.

Paso 2: Elimina los elementos de la lista usando el método remove ()

Paso 3: convierte la lista en una tupla.

 tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.remove(1)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(2, 3)

Empaquetar y desempacar tuplas

Al crear una tupla, se asignan valores. Esto se llama Empacar una tupla .

 # Example of packing a tuple
tup1 = ( 1, 2, 3)

Mientras que extraer los valores nuevamente en variables se llama Desempaquetar una tupla .

 # Example of unpacking a tuple
tup1 = ( 1, 2, 3 )
( one, two, three ) = tup1
print( one )
print( two )
print( three )
# prints
1
2
3

Bucle con tuplas de Python

Las tuplas son contenedores iterables al igual que las listas en Python. Puede recorrer fácilmente los elementos de la tupla.

Utilizando for Loop

El bucle for de Python funciona iterando a través de los elementos del contenedor.

 # Looping using for loop
tup1 = ( 1, 2, 3 )
for element in tup1:
print( element )
# prints
1
2
3

Relacionado: Cómo usar bucles for en Python

Usar números de índice

Puede iterar a través de la tupla utilizando índices de tuplas. Utilice la función len () para encontrar el tamaño de la tupla.

 tup1 = ( 1, 2, 3 )
for index in range(len(tup1)):
print( tup1[index] )

# prints
1
2
3

Mejorando la eficiencia de su código

Dado que la estructura de datos de la tupla es inmutable, su velocidad de procesamiento es más rápida que las listas. Por lo tanto, proporciona optimización a los programas / proyectos de Python. El uso de esta poderosa y versátil estructura de datos (tuplas) en sus programas de Python llevará la eficiencia de su código al siguiente nivel.