Tuplas

Tuplas são parecidas com listas, mas tuplas são imutáveis: uma vez que você cria uma tupla, você não pode modificá-la de nenhuma forma, ou seja, não pode alterar um elemento da tupla, não pode inserir elementos, e não pode remover elementos.

Como criar uma tupla em Python

A sintaxe de criação de tuplas é (…​, …​, …​), ou …​, …​, conforme mostrado nos exemplos abaixo.

# Exemplo de criação de tuplas.

tupla_vazia = () # Também é possível fazer: tupla_vazia = tuple()
print("Tupla vazia: ", tupla_vazia)

coordenada = (10, 20)
print("Exemplo de tupla: ", coordenada)

print("Tipo de uma tupla: ", type(coordenada))

lat, long = 31.79, 56.14
print("Outro exemplo de criação de tupla: ", (lat, long))
Tupla vazia:  ()
Exemplo de tupla:  (10, 20)
Tipo de uma tupla:  <class 'tuple'>
Outro exemplo de criação de tupla:  (31.79, 56.14)

Extraindo elementos de uma tupla

Podemos fazer o caminho inverso e "desempacotar" uma tupla:

x, y = coordenada
print("x =", x)
print("y =", y)
x = 10
y = 20

Como dissemos, tuplas não podem ser modificadas. Veja o que acontece quando tentamos modificar uma tupla:

coordenada[0] = 15
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-216-94c38671ad7b> in <module>()
----> 1 coordenada[0] = 15


TypeError: 'tuple' object does not support item assignment

Um uso interessante de tuplas é a troca dos valores de duas variáveis. Essa operação é comumente conhecida como swap. Vejamos um exemplo:

x = 10
y = 20

# Swap errado.
print("x e y antes do swap: ", x, y)

x = y
y = x

print("x e y depois do swap (errado): ", x, y)
x e y antes do swap:  10 20
x e y depois do swap (errado):  20 20

Você consegue identificar o problema no código acima?

Vejamos agora formas corretas de fazer o swap do conteúdo de duas variáveis.

x = 10
y = 20

# Swap tradicional.
print("x e y antes do swap: ", x, y)

temp = x
x = y
y = temp

print("x e y depois do swap: ", x, y)


x = 10
y = 20

# Swap com tuplas.
print("x e y antes do swap: ", x, y)

x, y = y, x

print("x e y depois do swap: ", x, y)
x e y antes do swap (tradicional):  10 20
x e y depois do swap (tradicional):  20 10
x e y antes do swap (usando tuplas):  10 20
x e y depois do swap (usando tuplas):  20 10

Playground

# Use este espaço para praticar o que você aprendeu nesta seção. # Basta digitar o código no espaço abaixo e clicar 'run'.