某活动采用计票机制,选手获得的票数越多,排名越靠前。
要求编写程序,接收选手的姓名和票数,输出排序后的成绩。
输入的数据为选手姓名和票数,中间用逗号分隔,输入姓名为“quit”时结束输入。
输出按票数由高到低的顺序输出选手的名次、姓名和票数
首先,可以使用一个字典来存储每个选手的票数,键为选手姓名,值为票数。然后,可以使用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}")