Tuplas

O que são e como funcionam as tuplas em Python

O que é uma tupla?

Depois de trabalhar com listas e aprender como elas funcionam, é hora de conhecer outra coleção importante do Python: a tupla.

À primeira vista, ela lembra bastante uma lista, já que ambas são sequências ordenadas acessadas por índices. Mas existe uma diferença fundamental que muda completamente a forma como você usa esse tipo de dado: tuplas são imutáveis.

Isso significa que, depois de criada, a tupla fica "congelada": você não pode alterar, adicionar ou remover itens de dentro dela. Essa imutabilidade torna as tuplas úteis quando você precisa garantir que uma sequência de valores não será modificada ao longo do programa.

Elas são criadas usando parênteses, dessa forma:

1tons = ("amarelo", "azul", "verde") 2print(tons) 3 4# Saída: 5# ('amarelo', 'azul', 'verde')

Tuplas vs. Listas

Antes de avançar, vale reforçar as diferenças mais importantes:

CaracterísticaListasTuplas
MutabilidadeMutáveis: permitem alterar, adicionar e remover itens.Imutáveis: após criadas, não podem ser modificadas.
OrdemMantêm a ordem dos itens.Mantêm a ordem dos itens.
Valores duplicadosPermitidos.Permitidos.
SintaxeUsam colchetes [].Usam parênteses ().

Essa comparação ajuda bastante a entender quando escolher cada uma.

Itens e ordem

Agora que você já sabe o que são tuplas, vamos observar como os valores se organizam dentro delas.

Os itens dentro da tupla seguem uma ordem fixa e possuem índices, assim como as listas. O primeiro item tem índice 0:

1frutas = ("maçã", "banana", "uva") 2print(frutas[0]) 3 4# Saída: 5# maçã

Tuplas também permitem valores repetidos:

1dados = ("A", "B", "A", "C") 2print(dados) 3 4# Saída: 5# ('A', 'B', 'A', 'C')

Tuplas com um único item

Se você quiser criar uma tupla com apenas um único elemento, precisa colocar uma vírgula ao final. Caso contrário, o Python interpreta como uma string normal, um número normal, etc.

1item = ("Python",) 2print(type(item)) 3 4# Saída: 5# <class 'tuple'> 6 7nao_eh_tupla = ("Python") 8print(type(nao_eh_tupla)) 9 10# Saída: 11# <class 'str'>

Tipos diferentes dentro da tupla

Assim como as listas, tuplas podem guardar vários tipo de dado e até misturar tipos diferentes:

1t1 = ("texto", 42, True) 2print(t1) 3 4# Saída: 5# ('texto', 42, True)

Acessando valores

O acesso funciona da mesma maneira que fazemos com as listas:

Índices positivos

1cores = ("vermelho", "verde", "azul") 2print(cores[2]) 3 4# Saída: 5# azul

Índices negativos

1print(cores[-1]) 2 3# Saída: 4# azul

Intervalos (slicing)

Assim como nas listas, podemos fatiar uma tupla:

1frutas = ("maçã", "banana", "cereja", "kiwi", "manga") 2print(frutas[1:4]) 3 4# Saída: 5# ('banana', 'cereja', 'kiwi')

E podemos omitir o início ou o fim:

1print(frutas[:3]) # do início até o índice 2 2print(frutas[2:]) # do índice 2 até o final 3 4# Saída: 5# ('maçã', 'banana', 'cereja') 6# ('cereja', 'kiwi', 'manga')

Também funciona com índices negativos:

1print(frutas[-4:-1]) 2 3# Saída: 4# ('banana', 'cereja', 'kiwi')

Unpacking: desempacotando tuplas

Quando criamos uma tupla, estamos "empacotando" valores dentro dela. O Python também permite fazer o caminho inverso: atribuir cada valor da tupla a uma variável correspondente.

1frutas = ("maçã", "banana", "cereja") 2 3(a, b, c) = frutas 4 5print(a) 6print(b) 7print(c) 8 9# Saída: 10# maçã 11# banana 12# cereja

O número de variáveis precisa bater com o número de itens — a não ser que você use um asterisco.

Usando o asterisco *

O asterisco permite capturar vários itens em forma de lista:

1frutas = ("maçã", "banana", "cereja", "morango", "kiwi") 2 3(a, b, *resto) = frutas 4 5print(a) 6print(b) 7print(resto) 8 9# Saída: 10# maçã 11# banana 12# ['cereja', 'morango', 'kiwi']

Você também pode usar o asterisco no meio:

1(a, *meio, ultimo) = ("uva", "manga", "pera", "ameixa", "figo") 2 3print(a) 4print(meio) 5print(ultimo) 6 7# Saída: 8# uva 9# ['manga', 'pera', 'ameixa'] 10# figo

Aprendemos que as tuplas são uma forma simples e segura de representar coleções que não devem ser modificadas ao longo do programa. Elas funcionam de maneira parecida com as listas em vários aspectos, mas trazem a vantagem da imutabilidade, que evita mudanças acidentais nos dados.

Agora que você já entende o que são tuplas, como criá-las e como acessar seus valores, podemos avançar para a parte prática: como combinar tuplas, copiar, transformar e até contornar a imutabilidade quando necessário.