Dúvida sobre FOR

25 views
Skip to first unread message

Matheus Motta

unread,
May 12, 2022, 11:19:23 AM5/12/22
to Python Brasil
Olá, tenho uma dúvida básica sobre o FOR 
quando executo esse código:

listas= [('a','x',9),('b','y',1),('c','z',2),('d','q',3),('e','v',5)]
for h, i,x in listas:
  print(h,i)

O resultado é esse:
a x
b y 
c z 
d q 
e v

Quando tento executar o código abaixo, tentando fazer o FOR olhar somente 2 itens dentro de cada parênteses, ele dá erro. Acima eu faço ele olhar os 3, mas só imprimir 2. Aqui entendi que deveria olhar 2 e imprimir esses 2.

listas= [('a','x',9),('b','y',1),('c','z',2),('d','q',3),('e','v',5)]
for h, i in listas:
  print(h,i)


Lucas Brahm

unread,
May 16, 2022, 7:07:19 PM5/16/22
to python...@googlegroups.com
Quando você faz  for h, i,x in listas você na verdade está desempacotando os valores. De forma semelhante a seguinte:

valor1, valor2, valor3 = ('banana', 'mamao', 'abacaxi')

O desempacotamento espera que todos os valores sejam desempacotados. No exemplo acima, como era uma tupla com 3 elementos, três variáveis receberam cada um dos elementos.

Caso queira pegar algum ou alguns elementos só e ignorar outros, o seguinte pode ser feito:

Opção 1: Utilizado o "_" para "jogar fora" o que não interessa. Exemplos:
valor1, valor2, _ = ('banana', 'mamao', 'abacaxi')
valor1, _, _ = ('banana', 'mamao', 'abacaxi')

Opção 2: Caso sejam muitos elementos para serem ignorados, utilizar o *. Exemplo:
valor1, *_ = ('banana', 'mamao', 'abacaxi')

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/c4abf114-0979-4d88-bcbf-e9da8930da30n%40googlegroups.com.

Marcio Freire Silverio

unread,
May 16, 2022, 7:07:19 PM5/16/22
to python...@googlegroups.com
No pyhton você não consegue fazer o unpacking se a quantidade de variáveis não forem iguais a quantidade de itens dentro da lista.
No caso você tem uma lista com tuplas de 3 itens cada, e realmente precisa fazer a separação em 3 variáveis, mesmo que só vá utilizar duas.

Em qui., 12 de mai. de 2022 às 12:19, Matheus Motta <mottama...@gmail.com> escreveu:

Jeferson Furtado

unread,
May 16, 2022, 7:27:17 PM5/16/22
to python...@googlegroups.com
For i in lista:
print(i[0],i[1])

Matheus Motta

unread,
May 17, 2022, 9:35:00 AM5/17/22
to Python Brasil
Obrigado, galera. Agora sim entendi!
Reply all
Reply to author
Forward
0 new messages