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

2024-09-30 20:25:41 发布

您现在位置:Python中文网/ 问答频道 /正文

输入将包含一个食物项目列表,其中每一个项目的出现都代表一个投票。你应该把获胜的食物作为输出打印出来。如果没有明确的获胜者,请打印“NOTA”。在

样本输入:

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

样本输出:

^{pr2}$
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))

Tags: 项目keyinforinputifvaluesys
1条回答
网友
1楼 · 发布于 2024-09-30 20:25:41

可以使用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])

相关问题 更多 >