1
resposta

Em que momento o zip está sendo convertido em lista?

Não entendi porque a alternativa C está incorreta

O zip retorna um objeto iterável de tuplas, porém precisa ser convertido em algum iterável como por exemplo a lista

No código em questão só está utilizando o zip para unir os iteráveis alturas e pesos

Mas o zip não está sendo convertido em lista, até então não consegui identificar

1 resposta

Olá Mateus, tudo bem?

No código da questão, o código zip(alturas, pesos) cria um iterável de tuplas, onde cada tupla contém uma altura e um peso correspondentes. Por exemplo, o zip resultará [(1.70, 65), (1.80, 80), (1.65, 58), (1.75, 70), (1.90, 95)].

A parte que pode estar causando confusão é o uso de list comprehension. A expressão [round((peso / altura**2), 1) for altura, peso in zip(alturas, pesos)] percorre cada tupla gerada pelo zip, calcula o IMC para cada par de altura e peso, arredonda o resultado para uma casa decimal e armazena esses valores em uma lista.

Portanto, a variável imc será uma lista de valores de IMC, e não um objeto zip. Por isso, a alternativa C está incorreta. A alternativa correta é a B, que diz que o código gera uma lista com os IMCs de cada pessoa do dataset.

código da atividade executado no colab. A saída é [22.5, 24.7, 21.3, 22.9, 26.3]

Essa lista contém os valores de IMC calculados para cada par de altura e peso.

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!