Segue a forma como resolvi as questões 9 e 10
Questão 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']
#Criando o dicionário com a quantidade de vezes que cada estado aparece
filiais = {estado: estados.count(estado) for estado in set(estados)}
filiais
Questão 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)]
# Criando o dicionário com os funcionários por estado
filiais_lista_funcionarios = {estado: [tupla[1] for tupla in funcionarios if tupla[0] == estado] for estado in filiais}
filiais_lista_funcionarios
# Criando uma lista com as somas da quantidade de funcionários por estado
lista_soma = [sum(lista) for lista in filiais_lista_funcionarios.values()]
#Criando o dicionário com o total de funcionários por estado
dic_funcionarios = dict(zip(list(set(estados)), lista_soma))
dic_funcionarios