Link Search Menu Expand Document

Tupla (tuple)

Las tuplas en Python son un tipo o estructura de datos que permite almacenar datos de una manera muy parecida a las listas, con la salvedad de que son inmutables.

Crear tupla Python

Las tuplas en Python o tuples son muy similares a las listas, pero con dos diferencias. Son inmutables, lo que significa que no pueden ser modificadas una vez declaradas, y en vez de inicializarse con corchetes se hace con (). Dependiendo de lo que queramos hacer, las tuplas pueden ser más rápidas.

tupla = (1, 2, 3)
print(tupla) #(1, 2, 3)

También pueden declararse sin (), separando por , todos sus elementos.

tupla = 1, 2, 3
print(type(tupla)) #<class 'tuple'>
print(tupla)       #(1, 2, 3)

Operaciones con tuplas

Como hemos comentado, las tuplas son tipos inmutables, lo que significa que una vez asignado su valor, no puede ser modificado. Si se intenta, tendremos un TypeError.

tupla = (1, 2, 3)
#tupla[0] = 5 # Error! TypeError

Al igual que las listas, las tuplas también pueden ser anidadas.

tupla = 1, 2, ('a', 'b'), 3
print(tupla)       #(1, 2, ('a', 'b'), 3)
print(tupla[2][0]) #a

Y también es posible convertir una lista en tupla haciendo uso de al función tuple().

lista = [1, 2, 3]
tupla = tuple(lista)
print(type(tupla)) #<class 'tuple'>
print(tupla)       #(1, 2, 3)

Se puede iterar una tupla de la misma forma que se hacía con las listas.

tupla = [1, 2, 3]
for t in tupla:
    print(t) #1, 2, 3

Y se puede también asignar el valor de una tupla con n elementos a n variables.

l = (1, 2, 3)
x, y, z = l
print(x, y, z) #1 2 3

Aunque tal vez no tenga mucho sentido a nivel práctico, es posible crear una tupla de un solo elemento. Para ello debes usar , antes del paréntesis, porque de lo contrario (2) sería interpretado como int.

tupla = (2,)
print(type(tupla)) #<class 'tuple'>

Métodos tuplas

count(<obj>)

El método count() cuenta el número de veces que el objeto pasado como parámetro se ha encontrado en la lista.

l = [1, 1, 1, 3, 5]
print(l.count(1)) #3

index(<obj>[,index])

El método index() busca el objeto que se le pasa como parámetro y devuelve el índice en el que se ha encontrado.

l = [7, 7, 7, 3, 5]
print(l.index(5)) #4

En el caso de no encontrarse, se devuelve un ValueError.

l = [7, 7, 7, 3, 5]
#print(l.index(35)) #Error! ValueError

El método index() también acepta un segundo parámetro opcional, que indica a partir de que índice empezar a buscar el objeto.

l = [7, 7, 7, 3, 5]
print(l.index(7, 2)) #2