打印出现次数最多的项目作为输出。如果没有明确的获胜者,请打印“ NOTA”

时间:2019-10-13 09:36:30

标签: python python-3.x

输入将包含食品列表,其中每个食品项代表一票。您应该打印获奖食品作为输出。如果没有明确的获胜者,请打印“ NOTA”。

样本输入:

["pasta","pasta","pasta","pasta","pasta","paratha","paratha","paratha"]

样本输出:

pasta
import ast,sys
input_str = sys.stdin.read()
votes = ast.literal_eval(input_str)

    d = {}
    for i in votes:
        if i not in d:
            d[i]=1
        else:
            d[i] = d[i] + 1
    for key, value in d.items():
        if value == max(d.values()):
            print("{}".format(key))

1 个答案:

答案 0 :(得分:0)

您可以使用defaultdict简化字典填充。

然后,我将使用sorted生成降序投票列表。然后,您只需要检查第二次投票是否等于第一次投票即可。

参见下文:

from collections import defaultdict

votes = ["pasta","pasta","pasta","pasta","paratha","paratha","paratha","paratha"]

count_votes = defaultdict(int)

for vote in votes:
    count_votes[vote] += 1

sorted_votes = sorted(count_votes.items(), key=lambda kv: kv[1], reverse=True)
if len(sorted_votes) > 1:
    if sorted_votes[1][1] == sorted_votes[0][1]:
        print('NOTA')
    else:
        print(sorted_votes[0][0])