1
resposta

[Projeto] Soma de valores em um dicionário por categoria (chaves) e armazenando o total em outro dicionário

Acabei fazendo da forma mais complicada, mas foi o que me veio à mente em um primeiro momento kkk

products_for_sale = { 
    "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} 
    ] 
} 

total_sold_by_categories = {}

for category in products_for_sale:

    total_sold = 0
    for product in products_for_sale[category]:
        total_sold += product['valor_unitario'] * product['quantidade']

    total_sold_by_categories[category] = total_sold

print(total_sold_by_categories)
1 resposta

Oi, Lucas! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu raciocínio está claro e você estruturou bem os dados com dicionários aninhados. Isso ajuda bastante a visualizar como organizar informações por categoria. A forma que encontrou para somar os valores está funcionando e cumpre bem a proposta do desafio.

Uma dica interessante para o futuro é usar o método items() quando precisar iterar tanto pela chave quanto pelo valor de um dicionário. Veja este exemplo:


for categoria, produtos in products_for_sale.items():
    total = sum(p['valor_unitario'] * p['quantidade'] for p in produtos)
    total_sold_by_categories[categoria] = total

Esse código usa items() para acessar chave e lista ao mesmo tempo, e sum() com list comprehension para deixar mais direto.

Alura

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