Python – Tuplas – Lista de objetos imutável — métodos index(), count(), aninhamento – 18
Tuplas em Python – Lista de objetos imutável — métodos index(), count(), aninhamento
As Tuplas são sequências muito parecidas com listas, porém com algumas diferenças significativas:
1. A criação de tuplas usa parênteses em vez de colchetes:
val = (2, 6, 9, 3)
# ou
val = 2, 6, 9, 3
2. As tuplas são imutáveis – não podem ser modificadas in loco. Isso gera um erro:
val[0] = 4
Características das tuplas
- Sequência Imutável – conteúdo não pode ser modificado após ter sido criada.
- Útil para dados “fixos” (como uma espécie de sequência de constantes)
- Mais rápida que listas em algumas operações, como a iteração.
- Pode conter quaisquer tipos de dados, mesmo tipos diferentes na mesma tupla.
As tuplas são usadas com frequência em funções que retornam valores múltiplos. Podemos pensar nas tuplas como se fossem uma espécie de lista de constantes.
Como criar uma tupla em Python
Criamos uma tupla usando parênteses ao atribuir os itens da coleção, separados por vírgulas, como segue:
halogenios = ('F', 'Cl', 'Br', 'I', 'At') print(halogenios)
As tuplas permitem a existência de itens duplicados entre seus elementos. Seus itens são indexados a partir de 0, como nas listas.
O processo de criação de uma tupla também é chamado de “empacotamento” (“packing“).
Podemos criar uma tupla contendo um único item se desejado. Para isso, devemos colocar uma vírgula após o item entre parênteses:
satelite_terra = ('Lua',)
Como as tuplas não são construídas para serem modificáveis, são mais simples e eficientes em termos de uso de memória e performance, comparadas às listas.
Tamanho de uma tupla
Podemos descobrir o tamanho de uma tupla (número de elementos que a compõe) com a função len():
print(len(halogenios))
Como acessar os itens de uma tupla
Podemos acessar elementos individuais na tupla usando colchetes e números de índice (como nas listas):
Elementos no final da lista podem ser acessados usando índices negativos, começando em -1 (da direita para a esquerda):
print(valores[-1]) print(valores[-3])
Concatenação de tuplas
Podemos concatenar (unir) duas ou mais tuplas em Python usando o operador de concatenação +
Exemplo:
t1 = (5,7,8,6,9) t2 = (7,12,3,0) tc = t1 + t2 print(tc) print(type(tc))
Observação: Não é possível concatenar tuplas com listas.
Contar ocorrências em typlas
Podemos contar o número de ocorrências de um elemento em particular dentro de uma tupla com o método .count(), como segue:
t1 = (5,7,8,6,9,3,4,5,4,2,4) print(t1.count(5)) print(t1.count(9)) print(t1.count(1))
Fatiamento de tuplas
Podemos fatiar uma tupla – acessar um grupo sequencial de elementos de uma vez (operação de slicing):
print(halogenios[0:2])
Assim acessamos os elementos a partir do índice 0 até o índice 2, SEM incluir o elemento de índice 2. Se o índice inicial não for informado, é assumido automaticamente como 0:
print(halogenios[:3])
Se o índice final não for informado, é assumido como o final da tupla:
print(halogenios[0:])
Os últimos dois elementos da tupla:
print(halogenios[-2:])
Outras operações comuns com tuplas em Python
Função len(): Informa o comprimento de uma tupla (ou outra sequência qualquer)
print(len(halogenios))
Operador in: retorna True se um elemento estiver na tupla, e False caso contrário.
print('Cl' in halogenios) print('O' in halogenios)
Função sum(): retorna o somatório dos valores da tupla:
print(sum(t1))
Funções min() e max(): retornam os valores mínimo e máximo da tupla
print(min(t1)) print(max(t1))
Iteração sobre tuplas
Podemos iterar sobre os elementos de uma tupla usando um laço for:
elementos = ('Ferro', 'Iodo', 'Ouro', 'Césio', 'Gálio') for elemento in elementos: print('Elemento:', elemento) print 'Aula de Química?'
ou ainda:
for e in elementos: print(e)
Operações não disponíveis para tuplas
Algumas operações disponíveis para listas para outras sequências não podem ser aplicadas sobre tuplas. Exemplos incluem:
- .sort()
- append()
- .reverse()
pois estas são operações que efetuam alterações nos dados da sequência – e, como sabemos, as tuplas são imutáveis.
Criar uma lista a partir de uma tupla
Podemos criar uma lista a partir dos elementos presentes em uma tupla com a função list()
halogenios = ('F', 'Cl', 'Br', 'I', 'At') grupo17 = list(halogenios) print(halogenios) print(grupo17) type(halogenios) type(grupo17)
Criar uma tupla a partir de uma lista
De forma inversa ao exemplo anterior, podemos também criar uma tupla com os elementos presentes em uma lista usando a função tuple()
halogenios = ['F', 'Cl', 'Br', 'I', 'At'] grupo17 = tuple(halogenios) print(halogenios) print(grupo17) type(halogenios) type(grupo17)
Lista x Dicionário x Tupla
Existem algumas semelhanças e diferenças fundamentais entre listas, dicionários e tuplas em Python, que devem ser levadas em consideração ao escolher uma dessas estruturas ao escrever seu código:
- Listas, dicionários e tuplas podem armazenar qualquer tipo de objeto, e serem encadeadas de forma arbitrária (uma pode conter a outra).
- As listas e dicionários também podem aumentar e diminuir de tamanho, de forma dinâmica. Porém, as tuplas não possuem essa propriedade.
É isso aí! Assista agora a um vídeo sobre o assunto para ver mais exemplos de manipulação de tuplas em Python:
Olá,
Vi que você é expert em Excel. Estava precisando de uma consultoria e gostaria de saber se você consegue me ajudar. Eu tenho duas planilhas A e B. Eu quero juntar as duas planilhas em uma nova só, respeitando as seguintes regras:
– A estrutura delas é a mesma (as mesmas 45 colunas)
– Eliminar duplicidade entre as planilhas, tendo como campo chave o Nome e E-mail;
– A planilha A é a mais atualizada, portanto, se houve informação na A e no mesma linha e coluna com a B, a A irá subscrever a B;
– Se tiver alguma informação em A que não tenha em B, essa informação deverá ser levada para a nova planilha;
– Se eu tiver alguma informação na Planilha B, que não existe na A, essa informação deverá ser adicionada na nova planilha.
Na verdade, esse último ponto é que estou tendo problema em resolver. Você consegue resolver isso? Quanto me cobraria?
As planilhas juntas têm mais de 20 mil registros.
Meu e-mail é fred@internit.com.br e meu whatsapp é (21) 981232303.
Abraços,
Fred