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

Solução por função

Estou com uma tendência a resolver a maioria dos exercícios com função def.

# 9 - 
estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']

estado_unico = []
for i in range(len(estados)):
    if estados[i] not in estado_unico:
        estado_unico.append(estados[i])

def quantidade (estado) -> int:
    total = estados.count(estado)
    return total

dicionario =  {item: quantidade (item) for item in estado_unico}        
dicionario   
# 10 -
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)]

def ffuncionarios (estado) -> list:
    lista = []
    for i in range(len(funcionarios)):
        if funcionarios[i][0] == estado:
            lista.append(funcionarios[i][1])        
    return lista


dicionario =  {item: ffuncionarios(item) for item in estado_unico}        
dicionario
2 respostas
solução!

Boa tarde, Ceilton! Tudo bem com você?

Lembro de ter te respondido recentemente sobre o uso de lambdas em comparação com def. Não tem problemas continuar utilizando def - eu particularmente gosto de deixar o código mais legível e o def cumpre bem esse papel. Gostei de você ter seguido as dicas!

Para saber mais: você pode usar a função set() para obter estados únicos de forma mais enxuta. Exemplo:

estado_unico = list(set(estados))

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

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

Boa tarde Rafael. Eu vi a solução do set() na proposta de solução do professor. Realmente fica menor e melhor o codigo. Obrigado.