El tipo de datos tupla en Python

El tipo de datos tupla es casi idéntico al tipo de datos lista, excepto en dos aspectos. En primer lugar, las tuplas se escriben con paréntesis, (), en lugar de corchetes, []. Por ejemplo, introduzca lo siguiente en el shell interactivo:

>>> eggs = ('hello', 42, 0.5)
>>> eggs[0]
'hello'
>>> eggs[1:3]
(42, 0.5)
>>> len(eggs)
3

Pero la principal diferencia entre las tuplas y las listas es que las tuplas, al igual que las cadenas, son inmutables. Las tuplas no pueden tener sus valores modificados, añadidos o eliminados. Introduzca lo siguiente en el intérprete de comandos interactivo, y observe el mensaje de error TypeError:

>>> eggs = ('hello', 42, 0.5)
>>> eggs[1] = 99
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    eggs[1] = 99
TypeError: 'tuple' object does not support item assignment

Si sólo tienes un valor en tu tupla, puedes indicarlo colocando una coma final después del valor dentro del paréntesis. De lo contrario, Python pensará que acabas de escribir un valor dentro de un paréntesis normal. La coma es lo que permite a Python saber que se trata de un valor de tupla. (A diferencia de otros lenguajes de programación, en Python está bien tener una coma después del último elemento de una lista o tupla). Introduce las siguientes llamadas a la función type() en el intérprete de comandos interactivo para ver la distinción:

>>> type(('hello',))
<class 'tuple'>
>>> type(('hello'))
<class 'str'>

Puedes utilizar tuplas para transmitir a cualquiera que lea tu código que no tienes intención de que esa secuencia de valores cambie. Si necesitas una secuencia ordenada de valores que nunca cambie, utiliza una tupla. Una segunda ventaja de usar tuplas en lugar de listas es que, como son inmutables y su contenido no cambia, Python puede implementar algunas optimizaciones que hacen que el código que usa tuplas sea ligeramente más rápido que el que usa listas.

Conversión de tipos con las funciones list() y tuple()

Al igual que str(42) devolverá '42', la representación en cadena del entero 42, las funciones list() y tuple() devolverán versiones de lista y tupla de los valores que se les pasen. Introduzca lo siguiente en el intérprete de comandos interactivo, y observe que el valor devuelto es de un tipo de datos diferente al valor pasado:

>>> tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
>>> list(('cat', 'dog', 5))
['cat', 'dog', 5]
>>> list('hello')
['h', 'e', 'l', 'l', 'o']

Convertir una tupla en una lista es útil si necesitas una versión mutable de un valor de tupla.

Deja una respuesta