Pular para o conteúdo principal

Tutorial de tuplas em Python

Aprenda sobre tuplas em Python: o que são, como criá-las, quando usar, quais operações realizar e as principais funções que você precisa conhecer.
Atualizado 17 de set. de 2026  · 10 min lido

Explorar com IA

ChatGPTClaudePerplexity

Assim como as listas em Python, as tuplas são outro tipo de dado padrão que permite armazenar valores em sequência. Elas são úteis quando você quer compartilhar dados com alguém sem permitir que esses dados sejam alterados. A pessoa pode usar os valores, mas nenhuma mudança é refletida nos dados originais compartilhados.

Neste tutorial, você vai ver tuplas em Python em detalhes:

python tuple tutorial

Não deixe de conferir o curso Data Types for Data Science da DataCamp, onde você consolida e pratica seu conhecimento de estruturas de dados como listas, dicionários, conjuntos e muito mais! Em alternativa, veja também este tutorial sobre estruturas de dados em Python, para aprender mais sobre as diferentes estruturas usadas pela linguagem.

Tupla em Python

Como você já leu acima, esta estrutura de dados do Python serve para armazenar uma sequência de itens que é imutável (ou seja, não muda) e ordenada.

As tuplas são inicializadas com parênteses () em vez de colchetes [], como acontece com listas. Isso significa que, para criar uma tupla, basta fazer o seguinte:

cake = ('c','a','k','e')
print(type(cake))
<class 'tuple'>

Lembre-se de que type() é uma função embutida que permite verificar o tipo de dado do parâmetro passado para ela.

Tuplas podem conter valores homogêneos ou heterogêneos. Porém, lembre-se: depois que você declara esses valores, não pode mais alterá-los:

mixed_type = ('C',0,0,'K','I','E')

for i in mixed_type:
    print(i,":",type(i))
C : <class 'str'>
0 : <class 'int'>
0 : <class 'int'>
K : <class 'str'>
I : <class 'str'>
E : <class 'str'>
# Tente mudar 0 para 'O'
mixed_type[1] = 'O'
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-16-dec29c289a95> in <module>()
----> 1 mixed_type[1] = 'O' # Trying to change 0 to 'O'


TypeError: 'tuple' object does not support item assignment

Essa mensagem de erro aparece porque você não pode alterar os valores dentro de uma tupla.

Veja outra forma de criar uma tupla:

numbers_tuple = 1,2,3,4,5
print(type(numbers_tuple))
<class 'tuple'>

Domine suas habilidades em dados com o DataCamp

Mais de 10 milhões de pessoas aprendem Python, R, SQL e outras habilidades tecnológicas usando nossos cursos práticos elaborados por especialistas do setor.

Comece a Aprender
learner-on-couch@2x.jpg

Tuplas versus listas

Como você deve ter notado, tuplas são muito parecidas com listas. Na prática, dá para dizer que são listas imutáveis, o que significa que, depois que uma tupla é criada, você não pode excluir nem alterar os valores dos itens armazenados nela. Também não é possível adicionar novos valores. Veja:

numbers_tuple = (1,2,3,4,5)
numbers_list = [1,2,3,4,5]

# Tentar adicionar um número à tupla
numbers_tuple.append(6)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-26-e47776d745ce> in <module>()
      3 
      4 # Append a number to the tuple
----> 5 numbers_tuple.append(6)


AttributeError: 'tuple' object has no attribute 'append'

Isso gera um erro porque você não pode remover nem adicionar itens a uma tupla — mas pode fazer isso com uma lista.

# Adicionar números à lista
numbers_list.append(6)
numbers_list.append(7)
numbers_list.append(8)

# Remover um número da lista
numbers_list.remove(7)
print(numbers_list)
[1, 2, 3, 4, 5, 6, 8]

Mas por que usar tuplas se elas são imutáveis?

Além de fornecerem acesso "somente leitura" aos dados, elas também são mais rápidas do que listas. Considere os trechos a seguir:

import timeit
timeit.timeit('x=(1,2,3,4,5,6,7,8,9)', number=100000)
0.0018976779974764213
timeit.timeit('x=[1,2,3,4,5,6,7,8,9]', number=100000)
0.019868606992531568

O que "imutável" realmente significa no contexto de tuplas?

De acordo com a documentação oficial do Python, imutável é "um objeto com um valor fixo"; mas "valor" é um termo meio vago — o termo mais preciso para tuplas seria "id". "id" é a identidade do local de um objeto na memória.

Vamos olhar mais a fundo:

# Tupla 'n_tuple' com uma lista como um de seus itens.
n_tuple = (1, 1, [3,4])

# Itens com o mesmo valor têm o mesmo id.
id(n_tuple[0]) == id(n_tuple[1])
True
# Itens com valores diferentes têm ids diferentes.
id(n_tuple[0]) == id(n_tuple[2])
False
id(n_tuple[0])
4297148528
id(n_tuple[2])
4359711048
n_tuple.append(5)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-40-3cd258e024ff> in <module>()
----> 1 n_tuple.append(5)


AttributeError: 'tuple' object has no attribute 'append'

Não podemos adicionar itens a uma tupla, por isso o erro acima. É por isso que a tupla é considerada imutável. Mas você sempre pode fazer isto:

n_tuple[2].append(5)
n_tuple
(1, 1, [3, 4, 5])

Ou seja, você conseguiu de fato alterar a tupla original. Como ela ainda é chamada de imutável então?

Porque o id da lista dentro da tupla continua o mesmo, mesmo depois de você ter adicionado o 5 a ela.

id(n_tuple[2])
4359711048

Resumindo o que você aprendeu até aqui:

Algumas tuplas (que contêm apenas objetos imutáveis: strings etc.) são imutáveis e outras tuplas (que contêm um ou mais objetos mutáveis: listas etc.) podem sofrer mudanças. No entanto, isso costuma gerar debate entre Pythonistas, e você vai precisar de mais base teórica para entender completamente. Este artigo aprofunda o tema. Por agora, vamos dizer que tuplas são imutáveis em geral.

  • Você não pode adicionar elementos a uma tupla, por causa de sua propriedade de imutabilidade. Não existe método append() nem extend() para tuplas,
  • Você não pode remover elementos de uma tupla, também por serem imutáveis. Tuplas não têm métodos remove() ou pop(),
  • Você pode localizar elementos em uma tupla, já que isso não altera a tupla,
  • Você também pode usar o operador in para verificar se um elemento existe na tupla.

Então, se você está definindo um conjunto constante de valores e tudo o que vai fazer é percorrê-los, use uma tupla em vez de uma lista. Ela será mais rápida do que trabalhar com listas e também mais segura, já que as tuplas funcionam como dados com "proteção contra escrita".

Se quiser saber mais sobre listas em Python, confira este tutorial!

Operações comuns com tuplas

O Python oferece várias maneiras de manipular tuplas. Vamos ver as mais importantes com exemplos.

Fatiamento (slicing) de tuplas

O primeiro valor de uma tupla tem índice 0. Assim como nas listas em Python, você pode usar os valores de índice com colchetes [] para acessar itens em uma tupla:

numbers = (0,1,2,3,4,5)
numbers[0]
0

Você também pode usar indexação negativa com tuplas:

numbers[-1]
5

Enquanto a indexação serve para obter itens individuais, o fatiamento permite obter um subconjunto de itens. Quando você informa um intervalo que quer extrair, isso é chamado de range slicing. O formato geral é:

[Índice inicial (incluído):Índice final (excluído):Incremento]

Aqui, Incremento é um parâmetro opcional; por padrão, o incremento é 1.

# O item no índice 4 é excluído
numbers[1:4]
(1, 2, 3)
# Retorna todos os itens da tupla
numbers[:]
(0, 1, 2, 3, 4, 5)
# Incremento = 2
numbers[::2]
(0, 2, 4)

Dica: você também pode usar um incremento negativo para inverter a tupla.

numbers[::-1]
(5, 4, 3, 2, 1, 0)

Adição (concatenação) de tuplas

Você pode combinar tuplas para formar uma nova tupla. A operação de adição simplesmente faz a concatenação.

x = (1,2,3,4)
y = (5,6,7,8)

# Combinando duas tuplas para formar uma nova
z = x + y 

print(z)
(1, 2, 3, 4, 5, 6, 7, 8)
y = [5,6,7,8]
z = x + y
print(z)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-55-d352c6414a4c> in <module>()
      1 y = [5,6,7,8]
----> 2 z = x + y
      3 print(z)


TypeError: can only concatenate tuple (not "list") to tuple

Você só pode somar ou combinar tipos de dados iguais. Assim, combinar uma tupla com uma lista gera erro.

Multiplicação de tuplas

A multiplicação simplesmente repete a tupla.

x = (1,2,3,4)
z = x*2
print(z)
(1, 2, 3, 4, 1, 2, 3, 4)

Funções úteis com tuplas

Diferente das listas em Python, tuplas não têm métodos como append(), remove(), extend(), insert() e pop() por serem imutáveis. Porém, há várias outras funções embutidas para trabalhar com tuplas:

count() e len()

count() retorna o número de ocorrências de um item em uma tupla.

a = [1,2,3,4,5,5]
a.count(5)
2

Com a função len(), você obtém o comprimento da tupla:

a = (1,2,3,4,5)
print(len(a))
5

any()

Você pode usar any() para saber se algum elemento de uma tupla é considerado verdadeiro (truthy). Se for o caso, o retorno é True; caso contrário, False.

a = (1,)
print(any(a))
True

Repare na , na declaração da tupla a acima. Se você não coloca a vírgula ao inicializar um único item em uma tupla, o Python supõe que você apenas adicionou um parêntese extra (o que é inofensivo), mas o tipo de dado não será tupla. Então, lembre-se de adicionar a vírgula ao declarar uma tupla de um único item.

Voltando à função any(): em um contexto booleano, o valor específico do item é irrelevante. Uma tupla vazia é falsa; qualquer tupla com pelo menos um item é verdadeira.

b = ()
print(any(b))
False

Essa função pode ser útil quando você usa uma tupla em alguma parte do seu programa e quer garantir que ela esteja populada.

tuple()

Use tuple() para converter um tipo de dado em tupla. No exemplo abaixo, você converte uma lista do Python em uma tupla.

a_list = [1,2,3,4,5]
b_tuple = tuple(a_list)
print(type(b_tuple))
<class 'tuple'>

min() e max()

Enquanto max() retorna o maior elemento da tupla, min() retorna o menor. Veja o exemplo:

print(max(a))
print(min(a))
5
A

Você também pode usar isso com tuplas que contêm strings.

# A string 'Apple' é automaticamente convertida em uma sequência de caracteres.
a = ('Apple') 
print(max(a))
p

sum()

Com essa função, você retorna a soma total dos itens em uma tupla. Só pode ser usada com valores numéricos.

sum(a)
28

sorted()

Para obter os elementos em ordem crescente, use sorted(), como no exemplo a seguir:

a = (6,7,4,2,1,5,3)
sorted(a)
[1, 2, 3, 4, 5, 6, 7]

Vale notar que o tipo de retorno é uma lista, não uma tupla. A sequência na tupla original 'a' não é alterada e o tipo de 'a' continua sendo tupla.

Bônus: atribuindo vários valores

Algo muito útil que você pode fazer com tuplas é usá-las para atribuir vários valores de uma só vez. Olha só:

a = (1,2,3)
(one,two,three) = a
print(one)
1

a é uma tupla de três elementos e (one,two,three) é uma tupla de três variáveis. Atribuir (one,two,three) à tupla a faz com que cada valor de a seja atribuído, na ordem, às variáveis one, two e three. Isso é prático quando você precisa distribuir uma sequência de valores armazenados em uma tupla.

Parabéns!

Você chegou ao fim deste tutorial sobre tuplas! No caminho, você aprendeu o que são tuplas em Python, como inicializá-las, quais são as operações mais comuns para manipulá-las e quais funções embutidas mais importantes você deve conhecer para extrair mais insights dessas estruturas de dados. De bônus, você também viu que é possível atribuir vários valores de uma vez usando tuplas.

Tópicos
Python

Cursos de Python

Curso

Introdução ao Python

4 h
7M
Domine os fundamentos da análise de dados com Python em quatro horas e explore pacotes populares.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Tutorial de conjuntos e teoria de conjuntos em Python

Aprenda sobre os conjuntos do Python: o que são, como criá-los, quando usá-los, funções incorporadas e sua relação com as operações da teoria dos conjuntos.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Funções em Python: como chamar e escrever funções

Descubra como escrever funções em Python reutilizáveis e eficientes. Domine parâmetros, instruções de retorno e temas avançados como funções lambda. Organize melhor seu código com main() e outras boas práticas.
Karlijn Willems's photo

Karlijn Willems

14 min

Tutorial

Tutorial e exemplos de funções e métodos de listas Python

Aprenda sobre as funções e métodos da lista Python. Siga agora os exemplos de código para list() e outras funções e métodos Python!
Abid Ali Awan's photo

Abid Ali Awan

7 min

Tutorial

Tutorial de estruturas de dados Python

Introdução às estruturas de dados do Python: saiba mais sobre tipos de dados e estruturas de dados primitivas e não primitivas, como strings, listas, pilhas etc.
Sejal Jaiswal's photo

Sejal Jaiswal

24 min

Tutorial

Tutorial de Python

Em Python, tudo é objeto. Números, cadeias de caracteres (strings), DataFrames, e até mesmo funções são objetos. Especificamente, qualquer coisa que você usa no Python tem uma classe, um modelo associado por trás.
DataCamp Team's photo

DataCamp Team

3 min

Tutorial

Operadores em Python

Este tutorial aborda os diferentes tipos de operadores em Python, sobrecarga de operadores, precedência e associatividade.
Théo Vanderheyden's photo

Théo Vanderheyden

9 min

Ver MaisVer Mais