python选票统计

某活动采用计票机制,选手获得的票数越多,排名越靠前。
要求编写程序,接收选手的姓名和票数,输出排序后的成绩。
输入的数据为选手姓名和票数,中间用逗号分隔,输入姓名为“quit”时结束输入。
输出按票数由高到低的顺序输出选手的名次、姓名和票数

以下内容部分参考ChatGPT模型:


首先,可以使用一个字典来存储每个选手的票数,键为选手姓名,值为票数。然后,可以使用sorted函数将字典按照值从高到低排序,最后输出排序后的结果即可。

以下是一个例子:

votes = {}  # 存储每个选手的票数

while True:
    name, count = input().split(',')
    if name == 'quit':
        break
    count = int(count)
    if name in votes:
        votes[name] += count
    else:
        votes[name] = count

# 按照票数从高到低排序
sorted_votes = sorted(votes.items(), key=lambda x: x[1], reverse=True)

# 输出排序后的结果
for name, count in sorted_votes:
    print(name, count)

输入样例:

Tom,10
Jerry,5
Tom,5
Lucy,8
quit

输出样例:

Tom 15
Lucy 8
Jerry 5

如果我的建议对您有帮助、请点击采纳、祝您生活愉快

# 初始化字典
players = {}

# 循环输入选手姓名和票数,直到输入 "quit"
while True:
    name, votes = input().split(',')
    if name == 'quit':
        break

    # 将票数转为整数
    votes = int(votes)

    # 如果选手姓名已存在,则将票数累加,否则新建一条记录
    if name in players:
        players[name] += votes
    else:
        players[name] = votes

# 按票数从大到小排序
sorted_players = sorted(players.items(), key=lambda x: x[1], reverse=True)

# 输出排序结果
for i, (name, votes) in enumerate(sorted_players):
    print(f"{i+1}\t{name}\t{votes}")