1.9. Todo sobre las tuplas

Una tupla es una lista inmutable. Una tupla no puede modificarse de ningún modo después de su creación.

Ejemplo 1.22. Defining a tuple

>>> t = ("a", "b", "mpilgrim", "z", "example") 1
>>> t
('a', 'b', 'mpilgrim', 'z', 'example')
>>> t[0]                                       2
'a'
>>> t[-1]                                      3
'example'
>>> t[1:3]                                     4
('b', 'mpilgrim')
1 Una tupla se define del mismo modo que una lista, salvo que el conjunto se encierra entre paréntesis en lugar de entre corchetes.
2 Los elementos de una tupla tienen un orden definido, como los de una lista. Las tuplas tienen primer índice 0, como las listas, de modo que el primer elemento de una tupla no vacía es siempre t[0],
3 Los índices negativos cuentan desde el final de la tupla, como en las listas.
4 Las porciones funcionan como en las listas. Advierta que al extraer una porción de una lista, se obtiene una lista nueva; al extraerla de una tupla, se obtiene una tupla nueva.

Ejemplo 1.23. Las tuplas no tienen métodos

>>> t
('a', 'b', 'mpilgrim', 'z', 'example')
>>> t.append("new")    1
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'append'
>>> t.remove("z")      2
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'remove'
>>> t.index("example") 3
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
AttributeError: 'tuple' object has no attribute 'index'
>>> "z" in t           4
1
1 No pueden añadirse elementos a una tupla. Las tuplas no tienen los métodos append ni extend.
2 No pueden eliminarse elementos de una tupla. Las tuplas no tienen los métodos remove ni pop.
3 No pueden buscarse elementos en una tupla. Las tuplas no tienen el método index.
4 Se puede, no obstante, usar in para ver si un elemento existe en la tupla.

Entonces, ¿para qué sirven las tuplas?

Nota
Las tuplas pueden convertirse en listas, y viceversa. La función incorporada tuple toma una lista y devuelve una tupla con los mismos elementos, y la función list toma una tupla y devuelve una lista. En la práctica, tuple congela una lista, y list descongela una tupla.

Lecturas complementarias

Footnotes

[2] Realmente, es más complicado. Las claves de los diccionarios deben ser inmutables. Las tuplas son inmutables, pero si se trata de una tupla de listas, se considera mutable y no es seguro utilizarla como clave de diccionario. Sólo las tuplas de cadenas, números u otras tuplas seguras pueden utilizarse como claves en un diccionario.