Dominando Tuplas em Python: Packing, Unpacking, Comparação, Slicing e Chaves de Dicionário
Entendendo Correspondência de Tuplas em Python
Correspondência de tuplas agrupa tuplas comparando um elemento especificado, tipicamente o segundo. Um padrão comum é usar um dicionário com o elemento da tupla como chave. Além disso, você pode construir novas tuplas a partir de fatias de existentes.
Sintaxe Básica de Tuplas
Defina uma tupla com valores separados por vírgula dentro de parênteses:
tup = ('Jan', 'Fev', 'Mar')
Tuplas vazias usam dois parênteses vazios: tup1 = ().
Para um único valor, inclua vírgula final: tup1 = (50,). Índices começam em 0 e tuplas suportam concatenação e slicing.
Atribuição de Tuplas
Python permite atribuição simultânea de múltiplas variáveis usando uma tupla. Esta técnica é útil para desempacotar dados estruturados.
Exemplo:
tup1 = ('Robert', 'Carlos', '1965', 'Terminator 1995', 'Actor', 'Florida')
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0]) # Robert
print(tup2[1:4]) # (2, 3, 4)
Packing e Unpacking
"Packing" insere valores em uma nova tupla; "unpacking" os extrai de volta em variáveis.
x = ('Guru99', 20, 'Education')
(company, emp, profile) = x
print(company) # Guru99
print(emp) # 20
print(profile) # Education
Comparando Tuplas
Operadores de comparação (<, >, ==, etc.) funcionam lexicograficamente: o primeiro elemento diferente determina o resultado.
# Caso 1
a = (5, 6)
b = (1, 4)
if a > b:
print('a é maior')
else:
print('b é maior')
Similarmente para outros casos: se os primeiros elementos são iguais, a comparação continua com o próximo elemento.
Usando Tuplas como Chaves de Dicionário
Como tuplas são hashable, elas podem servir como chaves de dicionário, diferente de listas.
directory = {('last', 'first'): '555-1234'}
for last, first in directory:
print(first, last, directory[(last, first)])
Itens de dicionário podem ser recuperados como lista de tuplas chave-valor:
a = {'x': 100, 'y': 200}
b = list(a.items())
print(b) # [('x', 100), ('y', 200)]
Deletando Tuplas
Tuplas são imutáveis; você não pode remover elementos individuais. No entanto, pode deletar um objeto tupla inteiro com a instrução del.
Slicing de Tuplas
Sintaxe de slice funciona para tuplas assim como para listas:
x = ('a', 'b', 'c', 'd', 'e')
print(x[2:4]) # ('c', 'd')
Funções Built-in para Tuplas
Tuplas funcionam perfeitamente com funções como all(), any(), enumerate(), max(), min(), sorted(), len() e tuple().
Vantagens de Tuplas sobre Listas
- Iteração sobre tuplas é ligeiramente mais rápida porque são imutáveis.
- Apenas sequências imutáveis podem ser chaves de dicionário; tuplas se encaixam nesse papel.
- Armazenar dados imutáveis em tupla garante que não podem ser alterados acidentalmente.
Resumo Rápido
- Packing e unpacking permitem transferência limpa de dados.
- Tuplas podem ser comparadas lexicograficamente.
- Use tuplas como chaves compostas de dicionário.
- Tuplas são imutáveis; use
delpara remover o objeto inteiro. - Slicing busca sub-tuplas eficientemente.
python
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Operadores em Python: Guia Completo
- Dominando a Declaração Pass em Python: Guia Prático
- Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
- Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
- Dominando Iteradores em Python: Como Funcionam e Como Criar os Seus
- Closures em Python Explicados: Como Funções Aninhadas Capturam Variáveis
- Dominando datetime do Python: Guia Prático de Datas, Horários e Fusos Horários
- Dominando Tuplas em Python: Packing, Unpacking, Comparação, Slicing e Chaves de Dicionário
- Dicionários Python: Adicionando, Atualizando e Gerenciando Pares Chave/Valor