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

[Projeto] Faça como eu fiz: analisando vendas por categoria

vendas = { 
    "Eletrônicos": [ 
        {"produto": "Smartphone", "quantidade": 5, "valor_unitario": 2000}, 
        {"produto": "Tablet", "quantidade": 3, "valor_unitario": 1500} 
    ], 

    "Eletrodomésticos": [ 
        {"produto": "Geladeira", "quantidade": 2, "valor_unitario": 3000}, 
        {"produto": "Micro-ondas", "quantidade": 4, "valor_unitario": 800} 
    ], 

    "Livros": [ 
        {"produto": "Livro A", "quantidade": 10, "valor_unitario": 50}, 
        {"produto": "Livro B", "quantidade": 5, "valor_unitario": 100} 
    ] 
}

print(f'Total de vendas por categoria:')
for categoria, itens in vendas.items():
    total_vendas = 0
    for item in itens:
        total_vendas += item['quantidade'] * item['valor_unitario']
    print(f"- {categoria}: R$ {total_vendas:.2f}")
1 resposta

Oi, Evandro. Tudo bem com você?

A utilização do laço aninhado para percorrer as categorias do dicionário e as listas de vendas individuais foi uma escolha excelente, garantindo o cálculo correto do faturamento acumulado por meio da multiplicação dos campos de quantidade e valor unitário. A formatação de ponto flutuante exibida com duas casas decimais também está impecável.

Uma dica útil para otimizar esse tipo de soma no ecossistema do Python envolve o uso da função nativa sum combinada com uma expressão geradora, o que torna a acumulação de valores mais compacta e limpa. Como exemplo, você pode substituir o laço interno de soma por uma única linha de atribuição digitando diretamente o comando total_vendas = sum(item['quantidade'] * item['valor_unitario'] for item in itens) posicionado logo abaixo do primeiro bloco de repetição.

De que maneira você acha que a substituição de acumuladores manuais por funções integradas como a sum pode impactar a performance do programa em grandes volumes de dados?

Parabéns pelo excelente desempenho na atividade, saiba que o fórum continua totalmente à disposição para suas futuras interações.

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