Podemos resolver a questão 10 assim também:
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 = list(set([tupla[0] for tupla in funcionarios]))
dic_estados = {estados[i]: [tupla[1] for tupla in funcionarios if tupla[0] == estados[i]] for i in range(len(estados))}
dic_total = {estados[i]: sum([tupla[1] for tupla in funcionarios if tupla[0] == estados[i]])for i in range(len(estados))}
dic_total # saída: {'SP': 82, 'ES': 58, 'RJ': 22, 'MG': 54}
dic_estados # saída: {'SP': [16, 10, 7, 11, 9, 12, 7, 10],'ES': [8, 9, 7, 12, 8, 14],'RJ': [13, 9],'MG': [9, 6, 4, 8, 5, 10, 12]}