Como descompactar uma lista em Python

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *