Tuplas

Após vermos as listas no capítulo anterior, neste, veremos as tuplas, ou tuples, no inglês.

Introdução

As tuplas assemelham-se bastante às listas. São estruturas que armazenam dados de diferentes tipos, em forma sequencial.

A grande diferença é que ao contrário de uma lista, uma tupla é imutável. Você não pode redefinir elementos de uma tupla, alterar seus valores ou qualquer coisa do tipo.

Criando uma tupla e acessando seus itens

A forma para se criar uma tupla é bastante semelhante à de uma lista também. Só que ao invés de usarmos colchetes, usamos parênteses. E da mesma forma, separamos seus elementos com vírgulas:

tupla1 = ("Gato", "Cachorro", "Papagaio", "Tartaruga")
print(tupla1)

> ('Gato', 'Cachorro', 'Papagaio', 'Tartaruga')

Para acessar seus elementos, também fazemos da mesma forma que com as listas, ou seja, através de colchetes indicando a posição do elemento desejado:

print(tupla1[2])

> Papagaio

Além disso, também é possível pegar apenas uma parte da tupla, usando a notação com colchetes e os números de início e fim desejados divididos por :, assim como já vimos com as listas. Esta funcionalidade, novamente, é denominada slicing:

print(tupla1[1:3])

> ('Cachorro', 'Papagaio')

Também é permitido criar uma tupla vazia, definindo apenas os parênteses, sem qualquer elemento dentro:

tupla_vazia = ()
print(tupla_vazia)

> ()

Bem, como dissemos que uma tupla é imutável, vamos provar. Vamos tentar alterar o valor de um item de uma tupla, assim como fizemos no capítulo de listas:

tupla1[1] = "Elefante"

> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> TypeError: 'tuple' object does not support item assignment

Repare como o próprio Python reporta o erro. Uma tupla não suporta a designação do valor de um item.

Igualmente, não é possível remover itens de uma tupla. Duas coisas que você pode fazer são criar uma nova tupla sem o item desejado e apagar uma tupla completamente, através da função del():

del(tupla1)
print(tupla1)

> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
> NameError: name 'tupla1' is not defined

Funcionalidades

Algumas das funções que vimos no capítulo anterior também funcionam com as tuplas, como len(), max() e min(), por exemplo:

tupla2 = (8.3, 9.4, 3.3, 7.5, 7.6)
print(max(tupla2))
print(min(tupla2))
print(len(tupla2))

> 9.4
> 3.3
> 5

Também é possível transformar uma tupla em uma lista e vice-versa, através das funções list() e tuple():

lista1 = list(tupla1)
print(lista1)
lista2 = ["José", "Afonso", "Carlos", "Luiz"]
tupla3 = tuple(lista2)
print(tupla3)

> ["Gato", "Cachorro", "Papagaio", "Tartaruga"]
> ('José', 'Afonso', 'Carlos', 'Luiz')

Conclusão

E assim, concluímos o capítulo sobre tuplas, que nada mais são do que listas imutáveis. Vimos que muito do que fazemos com as listas também funcionam com as tuplas e as formas de criá-las e acessar as informações contidas nelas. No próximo capítulo falaremos sobre dicionários, estruturas muito interessantes para armazenar dados de uma forma diferente das listas e tuplas.