Descompactação em Python
A descompactação (unpacking) em Python é uma técnica para extrair elementos de estruturas de dados como tuplas, sets, strings e listas em variáveis separadas. Ela é uma maneira concisa e conveniente de atribuir vários valores em uma única linha de código. Com isso, os códigos se tornam mais enxutos e legíveis.
Descompactando Listas e Tuplas
Usando a descompactação, podemos atribuir cada elemento de uma lista ou tupla a variáveis diferentes em uma única linha. O número de variáveis no lado esquerdo deve corresponder ao número de itens na tupla ou lista.
# descompactação de lista
a, b, c = [1, 2, 3] # resultado: a = 1, b = 2, c = 3
# descompactação de tupla
x, y, z = (4, 5, 6) # resultado: x = 4, y = 5, z = 6
Mas nem sempre queremos atribuir uma variável com um único valor a um elemento. Em certas situações, queremos extrair uma sub-lista de uma lista, por exemplo. Para esses casos, a descompactação pode ser feita com o auxílio do símbolo *:
a, *b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print('a:', a, 'b:', b)
# resultados: a: 1 b: [2, 3, 4, 5, 6, 7, 8, 9, 10]
No exemplo acima, a variável a foi atribuída ao primeiro elemento da lista. O símbolo * foi usado para atribuir toda a lista restante à variável b. Veja outro exemplo usando uma tupla:
*a, b, c = ("Ana", "35", "Avenida da Praia", "professora")
print('a:', a, 'b:', b, 'c:', c)
# a: ['Ana', '35'] b: Avenida da Praia c: professora
Descompactação de Sets e Strings
A descompactação também pode ser usada com sets:
# set
a, b, *c = {1, 2, 3, 4, 5}
print('a:', a, 'b:', b, 'c:', c)
# resultados: a: 1 b: 2 c: [3, 4, 5]
Em Python, strings podem ser descompactadas. Veja um exemplo abaixo:
# descompactação de strings
a, b, c = "Ana"
print('a:', a, 'b:', b, 'c:', c)
# resultados: a: A b: n c: a
A descompactação contribui para melhorar a legibilidade do código, tornando as atribuições de variáveis claras e concisas. Além disso, ela pode ser usada com diferentes técnicas de fatiamento para extrair partes específicas de iteráveis. Veja abaixo um exemplo de descompactação que extrai uma sub-lista de uma string:
# descompactação de strings
a, *b, c = "Anamaria"
print('a:', a, 'b:', b, 'c:', c)
# resultados: a: A b: ['n', 'a', 'm', 'a', 'r', 'i'] c: a
Dicionários
Dicionários também podem ser descompactados em Python, mas com algumas modificações. Se tentarmos descompactá-los de maneira equivalente à feita para listas e tuplas, como no exemplo abaixo, as variáveis retornadas terão os valores das keys apenas.
meu_dic = {"nome": "Fernanda", "cargo": "gerente"}
a, b = meu_dic
print(a, b)
# resultados: nome cargo
Para descompactar um dicionário isolando seus pares key/value, a descompactação requer o uso do método items(). Um exemplo com esse comando é mostrado abaixo:
# descompactação de pares key/value
a, b = meu_dic.items()
print(a, b)
# resultados: ('nome', 'Fernanda') ('cargo', 'gerente')
Veja também:
Concatenações com join() para strings em Python
O que é operador ternário em Python?
F-strings em Strings Multilinhas
Decodificação de strings em Python com decode()
Métodos para Manipular Strings em Python
Módulo Getpass para Prompts de Senhas
Aprenda a comparar textos com Python com Difflib
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.