Используя max (), чтобы найти самое высокое в списке, и если они связаны, выберите только один - PullRequest
0 голосов
/ 13 октября 2018

Я делаю программное обеспечение для голосования, и у меня возникли некоторые проблемы.Вот пример:

import random


One = "Test"
Two = "Testy"
Three = "Testyy"
Four = "Testyyy"
Five = "Testyyyy"
Six = "Testyyyyy"

running = {One: 0, Two: 0, Three: 0, Four: 0, Five: 0, Six: 0}


for voter in running:
    vote = random.choice(running)

    running[vote] += 1

winner = max(running)

Я хочу сделать так, чтобы в случае победы двух кандидатов случайным образом один из них был выбран победителем.Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вы можете найти максимальное количество голосов, а затем выбрать ключ (и) из словаря, которые имеют это значение:

max_votes = max(running.values())
winners = [candidate for candidate, votes in running.items() if votes == max_votes]
winner = random.choice(winners)
0 голосов
/ 13 октября 2018
winners=[]

for key,value in running:
  if value == winner
    winners.append(key)

 <pick random person from winners>
...