1
resposta

[Sugestão] Exercício 10 - Resolução alternativa (mais simples e sem lista auxiliar)

Olá pessoal!

Fiz a seguinte solução para o exercício 10, aproveitando o mesmo loop para criar os dois dicionários ao mesmo tempo e sem a lista auxiliar, conforme abaixo:

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)]

estados_unicos = list(set(tupla[0] for tupla in funcionarios))

dic_estado_fucionarios = {}
dic_soma_funcionarios = {}

for estado in estados_unicos:
  lista = [i[1] for i in funcionarios if i[0] == estado]
  dic_estado_fucionarios[estado] = lista
  dic_soma_funcionarios[estado] = sum(lista)

print(dic_estado_fucionarios)
print(dic_soma_funcionarios)

Aceito sugestões e críticas! :) Valeu!

1 resposta

Oi, Bruno, tudo bem?

Sua solução para o exercício 10 está ótima! Você realmente conseguiu simplificar o código eliminando a necessidade de uma lista auxiliar.

Apenas para fins de aprendizado, eu gostaria de sugerir uma pequena modificação. Em vez de criar a lista de estados únicos com a função set() e depois convertê-la em uma lista, você poderia usar a função set() diretamente no loop for. Isso economiza uma linha de código e também evita a necessidade de converter o conjunto de volta para uma lista. Veja como ficaria:

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)]

dic_estado_fucionarios = {}
dic_soma_funcionarios = {}

for estado in set(tupla[0] for tupla in funcionarios):
  lista = [i[1] for i in funcionarios if i[0] == estado]
  dic_estado_fucionarios[estado] = lista
  dic_soma_funcionarios[estado] = sum(lista)

print(dic_estado_fucionarios)
print(dic_soma_funcionarios)

Essa é apenas uma sugestão e seu código original já estava muito bem feito. Parabéns pelo seu trabalho!

Continue mergulhando em seus estudos e caso tenha dúvidas, não hesite em postar no fórum!

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!