Capítulo 9

Tuplas

9.1. Mutabilidad y tuplas

Hasta ahora, ha visto dos tipos compuestos: cadenas, que están hechas de caracteres, y listas, que están hechas de elementos de cualquier tipo. Una de las diferencias que señalamos es que los elementos de una lista se pueden modificar, pero los caracteres de una cadena no. En otras palabras, las cadenas son inmutables y las listas son mutables.

En Python hay otro tipo llamado tupla que es similar a una lista salvo en que es inmutable. Sintacticamente, una tupla es una lista de valores separados por comas:

   1: >>> tupla = 'a', 'b', 'c', 'd', 'e'

Aunque no es necesario, la convención dice que hay que encerrar las tuplas entre paréntesis:



   1: >>> tupla = ('a', 'b', 'c', 'd', 'e')

Para crear una tupla con un solo elemento, debemos incluir una coma final:



   1: >>> t1 = ('a',)
   2: >>> type(t1)
   3: <type 'tuple'>

Sin la coma, Python trata (á’) como una cadena entre paréntesis:



   1: >>> t2 = ('a')
   2: >>> type(t2)
   3: <type 'string'>

Dejando a un lado las cuestiones de sintaxis, las operaciones sobre las tuplas son las mismas que sobre las listas. El operador índice selecciona un elemento de la tupla.




   1: >>> tupla = ('a', 'b', 'c', 'd', 'e')
   2: >>> tupla[0]
   3: 'a'

Y el operador de porción selecciona un intervalo de elementos.



   1: >>> tupla[1:3]
   2: ('b', 'c')

Pero si intentamos modificar uno de los elementos de la tupla provocaremos un error:



   1: >>> tupla[0] = 'A'
   2: TypeError: object doesn't support item assignment

Por supuesto, incluso aunque no podamos modificar los elementos de una tupla, podemos sustituir una tupla por otra diferente:



   1: >>> tupla = ('A',) + tupla[1:]
   2: >>> tupla
   3: ('A', 'b', 'c', 'd', 'e')


0