Resumo: neste tutorial, você aprenderá como descompactar uma lista em Python para tornar seu código mais conciso.
Introdução à lista de descompactação
O exemplo a seguir define uma lista de strings:
colors = ['red', 'blue', 'green']
Para atribuir o primeiro, segundo e terceiro elementos da lista a variables, você pode atribuir elementos individuais a variáveis como esta:
red = colors[0]
blue = colors[1]
green = colors[2]
No entanto, o Python fornece uma maneira melhor de fazer isso. É chamado de descompactação de sequência.
Basicamente, você pode atribuir elementos de uma lista (e também uma tupla) a várias variáveis. Por exemplo:
red, blue, green = colors
Essa instrução atribui o primeiro, o segundo e o terceiro elementos da lista colors
às variáveis red
, blue
e green
.
Neste exemplo, o número de variáveis do lado esquerdo é igual ao número de elementos da lista do lado direito.
Se você usar um número menor de variáveis no lado esquerdo, receberá um erro. Por exemplo:
colors = ['red', 'blue', 'green']
red, blue = colors
Erro:
ValueError: too many values to unpack (expected 2)
Nesse caso, o Python não conseguiu descompactar três elementos em duas variáveis.
Desempacotando e empacotando
Se quiser descompactar os primeiros elementos de uma lista e não se importar com os outros elementos, você pode:
- Primeiro, descompacte os elementos necessários em variables.
- Em segundo lugar, coloque os elementos restantes em uma nova lista e atribua-a a outra variável.
Ao colocar o asterisco (*
) na frente do nome de uma variável, você empacotará os elementos restantes em uma lista e os atribuirá a uma variável. Por exemplo:
colors = ['red', 'blue', 'green']
red, blue, *other = colors
print(red)
print(blue)
print(other)
Saída:
red
blue
['green']
Este exemplo atribui o primeiro e o segundo elementos da lista colors
às variáveis red
e green
. E atribui o último elemento da lista à variável other
.
Aqui está outro exemplo:
colors = ['cyan', 'magenta', 'yellow', 'black']
cyan, magenta, *other = colors
print(cyan)
print(magenta)
print(other)
Saída:
cyan
magenta
['yellow', 'black']
Este exemplo atribui o primeiro e o segundo elementos a variáveis. Ele empacota os dois últimos elementos em uma nova lista e atribui a nova lista à variável other
.
Resumo
- A descompactação atribui elementos da lista a várias variáveis.
- Use o asterisco (*) na frente de uma variável como esta *variable_name para empacotar os elementos restantes de uma lista em outra lista.