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!

1
resposta

Na pratica

Um e-commerce possui as informações de id de venda, quantidade vendida e preço do produto divididos nas seguintes listas:

id = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
quantidade = [15, 12, 1, 15, 2, 11, 2, 12, 2, 4]
preco = [93.0, 102.0, 18.0, 41.0, 122.0, 14.0, 71.0, 48.0, 14.0, 144.0]

O e-commerce precisa estruturar esses dados em uma tabela contendo o valor total da venda, que é obtida multiplicando a quantidade pelo preço unitário. Além disso, a tabela precisa conter um cabeçalho indicando as colunas: 'id', 'quantidade', 'preco' e 'total'.

Crie uma lista de tuplas em que cada tupla tenha id, quantidade, preço e valor total, na qual a primeira tupla é o cabeçalho da tabela.

id = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
quantidade = [15, 12, 1, 15, 2, 11, 2, 12, 2, 4]
preco = [93.0, 102.0, 18.0, 41.0, 122.0, 14.0, 71.0, 48.0, 14.0, 144.0]

# Cabeçalho da tabela
tabela = [('id', 'quantidade', 'preco', 'total')]

# Adiciona cada linha de dados
for i, q, p in zip(id, quantidade, preco):
    total = q * p
    tabela.append((i, q, p, total))

print(tabela)
1 resposta

Oi, Luckas! Tudo bem?

A sua atividade na prática ficou bem resolvida, e o uso de zip() foi uma ótima escolha para percorrer as três listas ao mesmo tempo e montar a lista de tuplas com id, quantidade, preco e total.

O raciocínio está correto: você criou o cabeçalho primeiro e depois adicionou cada registro com append(), calculando total = q * p dentro do for.

Uma dica para treinar mais esse conteúdo é tentar refazer o mesmo exercício com list comprehension, assim você pratica uma forma mais compacta de criar listas em Python:

id = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
quantidade = [15, 12, 1, 15, 2, 11, 2, 12, 2, 4]
preco = [93.0, 102.0, 18.0, 41.0, 122.0, 14.0, 71.0, 48.0, 14.0, 144.0]

tabela = [('id', 'quantidade', 'preco', 'total')] + [
    (i, q, p, q * p)
    for i, q, p in zip(id, quantidade, preco)
]

print(tabela)

Você achou mais fácil montar essa tabela usando o for tradicional ou quer praticar mais a versão com list comprehension?

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