Al igual que las listas y las cadenas de caracteres (strings), los tuples son objetos de tipo secuencia.
Son muy similares a las listas y comparten varias de sus funciones y métodos, aunque su principal diferencia es que son inmutables.
Al igual que las listas, los tuples son:
Pero por otra parte, los tuples son:
Un tuple puede crearse simplemente mediante una secuencia de elementos separados por comas.
Opcionalmente pueden delimitarse los elementos mediante paréntesis (en vez de corchetes, como las listas).
En algunos casos, los paréntesis pueden ser necesarios para evitar ambigüedades. También podemos tomar como criterio siempre usar paréntesis para definir un tuple.
tuple1 = 1, 2, 3
tuple2 = (4, 5, 6)
print(tuple1, type(tuple1), sep='\t')
print(tuple2, type(tuple2), sep='\t')
Aternativamente, puede crearse un tuple mediante la función tuple(), con cualquier iterable como argumento:
tuple1 = tuple([1, 2, 3])
tuple2 = tuple(range(4, 7))
print(tuple1, type(tuple1), sep='\t')
print(tuple2, type(tuple2), sep='\t')
Un tuple vacío puede crearse con un par de paréntesis vacíos:
tuple1 = ()
print(tuple1, type(tuple1), sep='\t')
Para crear un tuple de un solo elemento es necesario poner una coma después del mismo, de lo contrario se evaluará la expresión.
Esto es independiente del uso de paréntesis.
no_tuple1 = 3*4
no_tuple2 = (3*4)
tuple1 = 3*4,
tuple2 = (3*4,)
print(no_tuple1, type(no_tuple1), sep='\t')
print(no_tuple2, type(no_tuple2), sep='\t')
print(tuple1, type(tuple1), sep='\t')
print(tuple2, type(tuple2), sep='\t')
Los tuples disponen de todas las funciones y los métodos comunes a las secuencias inmutables, vistas anteriormente.
T1 + T2 | concatenación |
T * N, N * T | repetición |
X in T X not in T | pruebas de pertenencia |
T[i] | acceso por indexado |
T[i:j], T[i:j:k] | acceso por particionado, con incremento opcional |
len(T) | longitud |
min(T), max(T) | ítem mínimo y máximo |
for item in T: [expr for item in T] | iteración |
También admite dos métodos específicos:
.index()
.count()
Estos métodos funcionan de la misma manera que en las listas, tal como fue visto en la clase pasada.
tuple1 = (1, 2)
tuple1 *= 3
tuple2 = (3, 4, 5, 6)
mi_tuple = tuple1 + tuple2
print(mi_tuple)
print(mi_tuple[2])
print(mi_tuple[3:6])
print(9 in mi_tuple)
print(6 in mi_tuple)
print(max(mi_tuple), min(mi_tuple))
print(len(mi_tuple))
print([x**3 for x in mi_tuple])
print(mi_tuple.index(4))
print(mi_tuple.count(2))
La función zip permite recorrer más de un iterable en paralelo, y devuelve una serie de tuples donde cada elemento pertence a cada uno de los iterables.
Ejemplo de salida:
foo