def dhont(número_lugares, votacao, verbose=False):
t_votos = votacao.copy()
lugar = {}
for key in votacao: lugar[key] = 0
while sum(lugar.values()) < número_lugares:
max_v = max(t_votos.values())
prox_lugar = list(t_votos.keys())[list(t_votos.values()).index(max_v)]
if prox_lugar in lugar:
lugar[prox_lugar] += 1
else:
lugar[prox_lugar] = 1
if verbose:
print("{}º Lugar para : {}".format(sum(lugar.values()), prox_lugar))
for key in t_votos:
print("\t{} [{}]: {:.1f}".format(key, lugar[key], t_votos[key]))
print("\b")
t_votos[prox_lugar] = votacao[prox_lugar] / (lugar[prox_lugar] + 1)
return lugar
votacao = {}
número_partidos =int(input("Digite o número de Partidos: "))
cont = 0
while número_partidos!=cont:
nome_partido = input("Digite o nome do Partido: ").upper()
votos = float(input("Número de Votos: "))
if votacao.get(nome_partido):
print("Ja existe o partido ",nome_partido)
cont = cont -1
else:
votacao[nome_partido] = votos
cont = cont+1
número_lugares =int(input("Digite o número de lugares: "))
distribuicao_de_lugares=dhont(número_lugares,votacao,verbose=True)
Baseado no seguinte código: https://gist.github.com/brunosan/96288a8612894fca718aacbcc501ee09