Tuplas
Uma tupla é uma lista imutável, ou seja, uma tupla é uma sequência que não pode ser alterada depois de criada. Uma tupla é definida de forma parecida com uma lista com a diferença do delimitador. Enquanto listas utilizam colchetes como delimitadores, as tuplas usam parênteses:
dias = (‘domingo’, ‘segunda’, ‘terça’, ‘quarta’, ‘quinta’, ‘sexta’, ‘sabado’)
type(dias)
<class ‘tuple’>
Podemos omitir os parênteses e inserir os elementos separados por vírgula:
dias = ‘domingo’, ‘segunda’, ‘terça’, ‘quarta’, ‘quinta’, ‘sexta’, ‘sabado’
type(dias)
<class ‘tuple’>
Note que, na verdade, é a vírgula que faz uma tupla, não os parênteses. Os parênteses são opcionais, exceto no caso da tupla vazia, ou quando são necessários para evitar ambiguidade sintática.
Assim como as listas, também podemos usar uma função para criar uma tupla passando um tipo que pode ser iterável como uma string ou uma lista. Essa função é a tuple() :
texto = ‘python’
tuple(texto)
(‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’)
lista = [1, 2, 3, 4]
tuple(lista) (1, 2, 3, 4)
As regras para os índices são as mesmas das listas, exceto para elementos também imutáveis. Como são imutáveis, uma vez criadas não podemos adicionar nem remover elementos de uma tupla. O método append() da lista não existe na tupla:
>>> dias.append('sabado2') Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>>
>>> dias[0] 'domingo'
>>>
>>> dias[0] = 'dom'
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Não é possível atribuir valores aos itens individuais de uma tupla, no entanto, é possível criar tuplas que contenham objetos mutáveis, como listas.
lista = [3, 4]
tupla = (1, 2, lista)
tupla
(1, 2, [3, 4])
lista = [4, 4]
tupla
(1, 2, [4, 4])
tupla[2] = [3, 4]
Traceback (most recent call last): File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
As tuplas são imutáveis e geralmente contêm uma sequência heterogênea de elementos. Já as listas são mutáveis, e seus elementos geralmente são homogêneos, sendo acessados pela iteração da lista, embora não seja uma regra.
Quando é necessário armazenar uma coleção de dados que não possa ser alterada, prefira usar tuplas a listas. Outra vantagem é que tuplas podem ser usadas como chaves de dicionários, que discutiremos nas seções adiante.
Tuplas são frequentemente usadas em programas Python. Um uso bastante comum são em funções que recebem múltiplos valores. As tuplas implementam todas as operações de sequência comuns.