Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Exercício 10 - tentando colocar cada dicionário em 1 linha de código.

dicionario1 = {estado: [col[1] for col in funcionarios if col[0] == estado] for estado in [ref[0] for ref in funcionarios]}
dicionario2 = {estado: sum(col[1] for col in funcionarios if col[0] == estado) for estado in [ref[0] for ref in funcionarios]}

print(f'{dicionario1}\n{dicionario2}')

Eu havia filtrado antes usando 'set', mas dicionário não repete chave, né?

1 resposta
solução!

Oi Dalmar, tudo bem?

Entendo que você queira simplificar o código e colocar cada dicionário em uma única linha. No entanto, deve-se lembrar de que a clareza do código é importante para facilitar a leitura e manutenção. Com isso em mente, você pode tentar escrever os dicionários da seguinte forma:

dicionario1 = {estado: [col[1] for col in funcionarios if col[0] == estado] for estado in {ref[0] for ref in funcionarios}}
dicionario2 = {estado: sum(col[1] for col in funcionarios if col[0] == estado) for estado in {ref[0] for ref in funcionarios}}

Neste código, usei conjuntos ({}) para criar um conjunto de estados exclusivos em vez de listas para evitar chaves duplicadas no dicionário. Isso funciona porque os dicionários não podem ter chaves duplicadas, e o conjunto garantirá que cada estado seja único.

No entanto, lembre-se de que a clareza do código é fundamental. Se essas versões mais compactas dificultarem a compreensão do código, pode ser melhor mantê-lo na forma original para torná-lo mais legível.

Um abraço e bons estudos.