Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

3
respostas

Resposta

Esse eu não consegui, só ficava assim...

produtos = ("maçã, banana, pera")
preços = (2.5, 1.2, 3.0)
produtos_preços = list(zip(["maça", "banana", "pera"] , [2.5, 1.2, 3.0]))
print(produtos_preços)

[('maça', 2.5), ('banana', 1.2), ('pera', 3.0)]

O certo:

produtos = input("Digite os produtos separados por vírgula: ").split(",") 
precos = input("Digite os preços separados por vírgula: ").split(",") 
 
for produto, preco in zip(produtos, precos): 
    print(f"{produto.strip()}: {preco.strip()}")

Digite os produtos separados por vírgula: maça, banana, pera
Digite os preços separados por vírgula: 2.5, 1.2, 3.0
maça: 2.5
banana: 1.2
pera: 3.0

3 respostas

Oi, Edineres! Como vai?

Você conseguiu usar muito bem a função zip(), e isso mostra que entendeu a ideia de juntar os dados em pares. A diferença é que, na atividade, o objetivo era receber os valores com input() e percorrer os dados usando o for. Sua solução faz sentido e chegou bem perto do esperado.

Uma dica interessante para o futuro é usar enumerate() para mostrar também a posição de cada item da lista. Veja este exemplo:

<pre><code>
produtos = ["maca", "banana", "pera"]

for indice, produto in enumerate(produtos):
    print(indice, produto)
</code></pre>

Esse código percorre a lista e mostra o índice junto com o nome do produto.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi, Armano! Tudo bem?

<pre><code>
produtos = ["maca", "banana", "pera"]

for indice, produto in enumerate(produtos):
    print(indice, produto)
</code></pre>

Esse código funcionou com você?
Pois quando fui testar, não funcionou.

Oi, Edineres! Perdão pela demora em responder!

O código do colega funciona normalmente em Python, então vale conferir se ele foi executado exatamente dessa forma e com a indentação correta.

O resultado esperado é:


produtos = ["maca", "banana", "pera"]

for indice, produto in enumerate(produtos):
    print(indice, produto)

Saída:


0 maca
1 banana
2 pera

Se não funcionou no seu teste, verifique se a lista foi criada corretamente e se o comando print() está dentro do bloco do for.

Você também pode testar assim para visualizar melhor os valores retornados pelo enumerate():


produtos = ["maca", "banana", "pera"]

for item in enumerate(produtos):
    print(item)

Saída:


(0, 'maca')
(1, 'banana')
(2, 'pera')

O enumerate() retorna uma tupla contendo o índice e o valor de cada item da lista, por isso o exemplo separa esses dois valores em indice e produto.

Fico à disposição!