Como criar e usar tuplas em Python
Uma tupla é uma coleção de objetos Python imutáveis. Ele pode conter elementos de qualquer tipo de dados arbitrário (inteiro, string, float, lista, etc.), o que o torna uma estrutura de dados flexível e poderosa. É uma parte da linguagem central do Python e amplamente utilizado em programas e projetos Python.
Criação de uma tupla
Uma tupla em Python pode ser criada colocando todos os elementos separados por vírgula entre parênteses () .
t1 = (1, 2, 3, 4)
t2 = ("Make", "Use", "Of")
t3 = (1.2, 5.9, 5.4, 9.3)
Os elementos da tupla são imutáveis e ordenados. Ele permite valores duplicados e pode ter qualquer número de elementos. Você pode até criar uma tupla vazia. Os elementos de uma tupla podem ser de qualquer tipo de dados (inteiro, flutuante, strings, tupla, etc.).
Criação de uma tupla vazia
Uma tupla vazia pode ser criada usando parênteses de abertura e fechamento vazios.
emptyTuple = ()
Criando uma tupla com um único elemento
Para criar uma tupla com apenas 1 elemento, você precisa adicionar uma vírgula após o elemento para que seja reconhecido como uma tupla pelo Python.
# t1 is a tuple
t1 = ( 3.14, )
print( type(t1) )
# prints
<class 'tuple'>
# t2 is not a tuple
t2 = ( 3.14 )
print( type(t2) )
# prints
<class 'float'>
Nota: a função type () retorna o tipo de classe do objeto passado como parâmetro.
Ao não usar uma vírgula após o elemento resulta no tipo de classe de t2 como 'float', portanto, é obrigatório usar uma vírgula após o elemento ao criar uma tupla com um único valor.
Criando uma tupla com diferentes tipos de dados
Os elementos da tupla podem ser de qualquer tipo de dados. Esse recurso torna a tupla versátil.
tup1 = ( 'MUO', True, 3.9, 56, [1, 2, 3] )
print( tup1 )
# prints
('MUO', True, 3.9, 56, [1, 2, 3])
Criando uma tupla usando o construtor tupla ()
Tuplas também podem ser criadas usando o construtor tupla () . Usando o construtor tuple (), você pode converter sequências como lista / dicionário em uma tupla.
tup1 = tuple( (1, 2, 3) )
print( tup1 )
# prints
(1, 2, 3)
Criação de uma tupla aninhada
As tuplas podem ser facilmente aninhadas dentro das outras tuplas. Você pode aninhar a tupla em qualquer nível que desejar.
tup1 = (1, 2, 3)
tup2 = ( 'Hello', tup1, 45 )
print( tup2 )
# prints
('Hello', (1, 2, 3), 45)
Acessando Elementos em uma Tupla
Você pode acessar os elementos da tupla usando o número do índice entre colchetes. O número do índice começa em 0. A tupla também suporta indexação negativa:
- -1: aponta para o último elemento
- -2: aponta para o penúltimo elemento e assim por diante
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
print( tup1[0] )
print( tup1[5] )
print( tup1[-1] )
print( tup1[-9] )
# prints
M
S
F
M
Cortando uma tupla
Você pode acessar uma variedade de elementos em uma tupla usando o operador dois – pontos : . A tupla também oferece suporte à operação de fatiamento usando índices negativos.
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
# Prints elements from index 1(included) to index 6(excluded)
print( tup1[1:6] )
# Prints elements from start to index 8(excluded)
print( tup1[:8] )
# Prints elements from index 3(included) to the end
print( tup1[3:] )
# Prints elements from index -4(included) to index -1(excluded)
print( tup1[-4:-1] )
# prints
('A', 'K', 'E', 'U', 'S')
('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O')
('E', 'U', 'S', 'E', 'O', 'F')
('S', 'E', 'O')
Verificando se um elemento existe em uma tupla
Você pode verificar se um elemento existe em uma tupla usando a palavra-chave in .
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
if 'M' in tup1:
print("Yes, the element M exists in the tuple")
else:
print("Element not found in the tuple !!")
# prints
Yes, the element M exists in the tuple
Atualizando tuplas
Por serem as tuplas imutáveis, não é possível alterar seu valor. Python lança um TypeError se você tentar atualizar a tupla.
tup1 = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
tup1[0] = 'Z'
# Following error is thrown
tup1[0] = 'Z'
TypeError: 'tuple' object does not support item assignment
Mas há um hack se você quiser atualizar sua tupla.
Alterar o valor dos elementos de uma tupla usando listas
Você pode alterar o valor dos elementos em sua tupla usando listas em Python . Primeiro, você terá que converter a tupla em uma lista. Em seguida, modifique a lista como desejar. Finalmente, converta a lista de volta em uma tupla.
tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp[0] = 4
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(4, 2, 3)
Adicionar novos elementos em uma tupla usando listas
Como as tuplas são imutáveis, não é possível adicionar novos elementos a uma tupla. Python gerará um erro como:
AttributeError: 'tuple' object has no attribute 'append
Novamente, você pode usar nosso hack (usando listas) para lidar com isso. Primeiro, converta a tupla em uma lista. Em seguida, adicione novos elementos à lista. Finalmente, converta a lista em uma tupla.
Observação: o método append () é usado em Python para adicionar um novo elemento ao final da lista.
tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.append(4)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(1, 2, 3, 4)
Excluir operação em tuplas
Como as tuplas são imutáveis, não é possível deletar nenhum elemento da tupla. Se você quiser deletar a tupla completa, isso pode ser feito usando a palavra-chave del .
tup1 = ( 1, 2, 3 )
del tup1
Mas você pode usar o mesmo hack (usando listas) que usou para alterar e adicionar itens de tupla.
Exclusão de elementos de uma tupla usando listas
Os elementos podem ser excluídos da tupla usando listas em 3 etapas simples:
Etapa 1: converter a tupla em uma lista.
Etapa 2: exclua os elementos da lista usando o método remove ()
Etapa 3: converta a lista em uma tupla.
tup1 = ( 1, 2, 3 )
print( "This is the old Tuple: ")
print( tup1 )
temp = list( tup1 )
temp.remove(1)
tup1 = tuple( temp )
print( "This is the Updated Tuple: ")
print( tup1 )
# prints
This is the old Tuple:
(1, 2, 3)
This is the Updated Tuple:
(2, 3)
Empacotando e descompactando tuplas
Ao criar uma tupla, os valores são atribuídos. Isso é chamado de compactação de uma tupla .
# Example of packing a tuple
tup1 = ( 1, 2, 3)
Já a extração dos valores de volta para as variáveis é chamada de Desempacotamento de uma tupla .
# Example of unpacking a tuple
tup1 = ( 1, 2, 3 )
( one, two, three ) = tup1
print( one )
print( two )
print( three )
# prints
1
2
3
Looping com tuplas Python
Tuplas são contêineres iteráveis, assim como listas em Python. Você pode facilmente percorrer os elementos da tupla.
Usando o for Loop
O loop for do Python funciona iterando os elementos do contêiner.
# Looping using for loop
tup1 = ( 1, 2, 3 )
for element in tup1:
print( element )
# prints
1
2
3
Usando números de índice
Você pode iterar por meio da tupla usando índices de tuplas. Use a função len () para encontrar o tamanho da tupla.
tup1 = ( 1, 2, 3 )
for index in range(len(tup1)):
print( tup1[index] )
# prints
1
2
3
Melhorando a eficiência do seu código
Como a estrutura de dados da tupla é imutável, sua velocidade de processamento é mais rápida do que listas. Assim, ele fornece otimização para programas / projetos Python. Usar esta estrutura de dados poderosa e versátil (tuplas) em seus programas Python levará a eficiência do seu código para o próximo nível.