1
resposta

MOMENTOS DO PROJETO - 02

13) As pessoas colaboradoras de um setor da empresa que você trabalha vão receber um abono correspondente a 10% do salário devido ao ótimo desempenho do time. O setor financeiro solicitou sua ajuda para a verificação das consequências financeiras que esse abono irá gerar nos recursos. Assim, foi encaminhada para você uma lista com os salários que receberão o abono: [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]. O abono de cada colaborador(a) não pode ser inferior a 200. Em código, transforme cada um dos salários em chaves de um dicionário e o abono de cada salário no elemento. Depois, informe o total de gastos com o abono, quantos(as) colaboradores(as) receberam o abono mínimo e qual o maior valor de abono fornecido.

salarios = [1172, 1644, 2617, 5130, 5532, 6341, 6650, 7238, 7685, 7782, 7903]

abonos = {}
for salario in salarios:
abono = salario * 0.10
if abono < 200:
abono = 200
abonos[salario] = abono

total_abonos = sum(abonos.values())

qtd_abono_minimo = sum(1 for valor in abonos.values() if valor == 200)

maior_abono = max(abonos.values())

print("Dicionário de salários e abonos:", abonos)
print("Total de gastos com abonos:", total_abonos)
print("Quantidade de colaboradores que receberam o abono mínimo:", qtd_abono_minimo)
print("Maior valor de abono fornecido:",

14) Uma equipe de cientistas de dados está estudando a diversidade biológica em uma floresta. A equipe fez a coleta de informações sobre o número de espécies de plantas e animais em cada área dessa floresta e armazenou essas informações em um dicionário. Nele, a chave descreve a área dos dados e os valores nas listas correspondem às espécies de plantas e animais nas áreas, respectivamente.

areas = {
'Área Norte': [2819, 7236],
'Área Leste': [1440, 9492],
'Área Sul': [5969, 7496],
'Área Oeste': [14446, 49688],
'Área Centro': [22558, 45148]
}

medias = {}

for area, especies in areas.items():
media = sum(especies) / len(especies) # média entre plantas e animais
medias[area] = media

area_maior_diversidade = max(medias, key=medias.get)

print("Média de espécies por área:", medias)
print("Área com maior diversidade biológica:", area_maior_diversidade,
"com média de", medias[area_maior_diversidade])

**15) O setor de RH da sua empresa te pediu uma ajuda para analisar as idades de colaboradores(as) de 4 setores da empresa. **

idades = {
'Setor A': [22, 26, 30, 30, 35, 38, 40, 56, 57, 65],
'Setor B': [22, 24, 26, 33, 41, 49, 50, 54, 60, 64],
'Setor C': [23, 26, 26, 29, 34, 35, 36, 41, 52, 56],
'Setor D': [19, 20, 25, 27, 34, 39, 42, 44, 50, 65]
}

medias_setores = {}
for setor, lista in idades.items():
medias_setores[setor] = sum(lista) / len(lista)

todas_idades = []
for lista in idades.values():
todas_idades.extend(lista)

media_geral = sum(todas_idades) / len(todas_idades)

acima_media = sum(1 for idade in todas_idades if idade > media_geral)

print("Média de idade por setor:", medias_setores)
print("Idade média geral:", round(media_geral, 2))
print("Quantidade de pessoas acima da média geral:", acima_media)

1 resposta

Olá, Penha. Como vai?

Parabéns por trazer a continuação e a conclusão dessa lista de desafios! Assim como no post anterior, a sua linha de raciocínio lógico continuou afiada, precisa e muito bem estruturada.

Trabalhar com condicionais de valores mínimos, listas dentro de dicionários (areas) e a manipulação de múltiplas listas de forma simultânea (como você fez para extrair a média geral de idades na questão 15) exige uma excelente abstração e domínio das estruturas de dados. Seus códigos funcionam perfeitamente e resolvem todos os problemas propostos de forma muito inteligente.

Para enriquecer ainda mais os seus estudos e destacar as ótimas soluções que você aplicou, separei alguns pontos técnicos importantes baseados nas suas resoluções:


1. Questão 13: Uso elegante de expressões geradoras

Na questão 13, para descobrir quantas pessoas receberam o piso do abono, você utilizou uma expressão geradora com a função sum():

qtd_abono_minimo = sum(1 for valor in abonos.values() if valor == 200)

Essa abordagem é extremamente performática em Python! Em vez de criar um laço tradicional com várias linhas de código incrementando uma variável contadora manual, você resolveu a contagem condicional em uma única linha, mantendo o script limpo e eficiente.

Apenas uma pequena nota física: No final do seu código da questão 13, o seu último print acabou ficando cortado na palavra "maior_abono" (provavelmente um detalhe ao copiar e colar). Para exibi-lo na tela, basta completar a linha com: print("Maior valor de abono fornecido:", maior_abono).


2. Questão 14: Desempacotamento de Dicionários com .items()

Para calcular a média de espécies de cada região, você utilizou o método .items() no laço for:

for area, especies in areas.items():

Esse é o padrão de excelência no Python quando precisamos acessar tanto a chave (area) quanto o valor (especies) de um dicionário ao mesmo tempo. Isso evita ter que buscar o valor acessando a chave manualmente por fora, tornando o seu loop muito mais direto e legível.


3. Questão 15: O método .extend() para unificação de dados

Na questão 15, o seu RH pediu para calcular tanto a média interna de cada setor quanto a média geral de toda a empresa. Para resolver a média geral, você criou a lista vazia todas_idades e utilizou o método .extend() dentro do loop de valores:

for lista in idades.values():
    todas_idades.extend(lista)

Essa foi uma sacada excelente! Enquanto o método .append() adicionaria as listas inteiras dentro da outra lista (criando uma lista de listas), o .extend() extrai os números de cada setor e os joga "desempacotados" em uma única lista linear de idades. Isso permitiu que você aplicasse as funções sum() e len() de forma direta no bloco seguinte.

Novamente, lembre-se apenas de manter a indentação correta nos seus blocos for e if no seu ambiente local (como o VS Code ou o Jupyter) para evitar erros de sintaxe, já que a caixa de texto do fórum remove os recuos por padrão se o código não for colado dentro do bloco de formatação.

Você concluiu uma das listas mais complexas do capítulo de fundamentos com maestria! Sinta-se muito segura para iniciar os próximos módulos e começar a trabalhar com a análise e manipulação de arquivos externos em larga escala.

Espero que possa ter lhe ajudado!