1
resposta

Desafio: hora da prática - Projetos

6. Filtrar vendas de 2022 maiores que 6000

vendas = [('2023', 4093), ('2021', 4320), ('2021', 5959), ('2022', 8883), ('2023', 9859),
('2022', 5141), ('2022', 7688), ('2022', 9544), ('2023', 4794), ('2021', 7178),
('2022', 3030), ('2021', 7471), ('2022', 4226), ('2022', 8190), ('2021', 9680), ('2022', 5616)]

filtradas = [valor for ano, valor in vendas if ano == '2022' and valor > 6000]
print(filtradas)

7. Rotular valores de glicemia
python

glicemia = [129, 82, 60, 97, 101, 65, 62, 167, 87, 53, 58, 92, 66, 120, 109, 62, 86, 96, 103, 88, 155, 52, 89, 73]

rotulos = [(valor,
'Hipoglicemia' if valor <= 70 else
'Normal' if valor <= 99 else
'Alterada' if valor <= 125 else
'Diabetes') for valor in glicemia]

print(rotulos)

8. Estruturar tabela de vendas

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)]
for linha in tabela:
print(linha)

9. Contagem de filiais por Estado

estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']

contagem = {estado: estados.count(estado) for estado in set(estados)}
print(contagem)

10. Agrupamento de colaboradores por Estado

funcionarios = [('SP', 16), ('ES', 8), ('MG', 9), ('MG', 6), ('SP', 10), ('MG', 4), ('ES',9), ('ES', 7),
('ES', 12), ('SP', 7), ('SP', 11), ('MG',8), ('ES',8), ('SP',9), ('RJ', 13), ('MG', 5),
('RJ', 9), ('SP', 12), ('MG', 10), ('SP', 7), ('ES', 14), ('SP', 10), ('MG', 12)]

Dicionário com listas de colaboradores por estado
listas_por_estado = {estado: [valor for e, valor in funcionarios if e == estado] for estado in set(e for e, _ in funcionarios)}

Dicionário com soma de colaboradores por estado
soma_por_estado = {estado: sum(valores) for estado, valores in listas_por_estado.items()}

print("Listas por estado:", listas_por_estado)
print("Soma por estado:", soma_por_estado)

1 resposta

Oi, Penha! Como vai?

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

Analisando suas soluções, dá para notar o domínio de conceitos fundamentais em Python. No exercício de filtrar vendas de 2022 maiores que 6000, você usou a compreensão de listas, combinando a verificação do ano com a condição sobre o valor em uma única expressão. O mesmo cuidado aparece no desafio de rotular glicemia, onde o encadeamento de condições com else ficou legível e bem estruturado.

A tabela de vendas com quantidade, preco e total ficou elegante graças ao uso do zip(), que combina os três iteráveis de forma limpa. Já na contagem de filiais por estados e no agrupamento de colaboradores por estado com o dicionário de funcionarios, você demonstrou compreender bem como dicionários por compreensão funcionam, inclusive usando set() para evitar duplicatas.

Uma dica para o futuro é utilizar o sorted() para ordenar os valores antes do print. Veja o exemplo abaixo:


valores = [8, 3, 1, 5]

ordenados = sorted(valores)

print(ordenados)

Esse recurso cria uma nova lista com os valores em ordem crescente, o que facilita muito a leitura dos resultados, especialmente quando trabalhamos com grandes volumes de dados como os das listas de vendas e contagem por estado.

Qual dos desafios você mais gostou de resolver e por quê?

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