Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Minha reposta Ex 10

A minha solucao ficou um pouco dificil de entender(eu achei). Tentei explicar, mas nao sei se ficou muito claro. Mas fiz o meu melhor. Obrigado pela aula

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

#Retorna so estados de cada tupla e depois usa-se a estrutura dados set para remover os valores repetitivos
estados = [uf[0] for uf in funcionarios]
estados_unicos = list(set(estados))

qt_fucionarios = {}
soma_funcionarios = {}
for estado in estados_unicos:
  '''
  #Para cada valor estado da lista estados_unicos, aplica-se uma funcao map, 
  onde o valor do iteravel dessa funcao é resultado de uma funcao filter. A funçao
  filter irá filtrar as tuplas na posicao zero que tenha valor igual a variavel estado.
  Retornando uma lista de tuplas com valores referentes a cada estado
  '''
  qt_fucionarios[estado] = list(map( lambda x: x[1], list(filter( lambda y: y[0] == estado, funcionarios))))

  #Irá somar os valores de cada chave (os estados) e suas listas de valores (qt_funcionarios)
  soma_funcionarios[estado] = sum(qt_fucionarios[estado])



print(qt_fucionarios)
print(soma_funcionarios)
2 respostas
solução!

Oi, Iago! Tudo bom contigo?

Sua solução é completamente válida e compreensível! Com a adição de comentários, isso apenas se intensificou. :)

Fico muito contente que tenha explorado uma maneira distinta de resolver o desafio, isso é um passo essencial para a construção do nosso pensamento lógico. Parabéns!

Continue sempre com essa dedicação, Iago! Se dúvidas surgirem, lembre-se que você pode contar com o fórum.

Abração.

A minha proposta de solução ficou um pouco diferente.

def exe10():
    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)]

    contagem = {func[0]: 0 for func in funcionarios}

    for func in funcionarios:
        contagem[func[0]] += func[1]

    print(contagem)