7.1 Tuples

Seqüències Immutables

Les tuples són seqüències immutables: no es poden modificar. Les tuples i les llistes tenen molt en comú, però les llistes són seqüències mutables: es poden modificar.

Les tuples utilitzen parèntesis en lloc de claudàtors:

lst = ['a', 3, -0.2]

tup = ('a', 3, -0.2)

Un cop creats, els elements de les llistes i tuples s’accedeixen usant la mateixa notació:

>>> lst[0]

'a'

>>> tup[0]

'a'

Slicing es pot utilitzar en ambdues:

>>> lst[:2]

['a', 3]

>>> tup[:2]

('a', 3)

Les tuples no es poden modificar:

>>> tup[0] = 'b'

TypeError: 'tuple' object does not support item assignment

Les tuples tenen menys mètodes que les llistes. De fet, els únics mètodes regulars són count i index:

>>> dir(list)

['add', 'class', 'contains', 'delattr', 'delitem', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'gt', 'hash', 'iadd', 'imul', 'init', 'iter', 'le', 'len', 'lt', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'reversed', 'rmul', 'setattr', 'setitem', 'sizeof', 'str', 'subclasshook', 'append', 'count', extend', 'index', 'insert', 'pop', 'remove', 'reverse', sort'] >>> dir(tuple) ['add', 'class', 'contains', 'delattr', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getnewargs', 'gt', 'hash', 'init', 'iter', 'le', 'len', 'lt', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'rmul', 'setattr', 'sizeof', 'str', 'subclasshook', 'count', 'index']

La resta de mètodes de les llistes no estan disponibles per a les tuples, perquè modifiquen l’objecte, i les tuples, són immutables, no es poden modificar.

Es pot utilitzar un for per iterar sobre els valors d’una tupla:

>>> tup = ('a', 3, -0.2)

>>> for item in tup:

print(item)

a

3

-0.2

Una tupla es pot passar com argument a la built-in function len:

>>> len(tup)

3

També és possible iterar sobre els índexs d’una tupla:

>>> for i in range(len(tup)):

print(tup[i])

a

3

-0.2

results matching ""

    No results matching ""