偶像选秀节目风头正盛,吸引了许多喜欢唱跳、有一颗明星梦想的少年少女参加,青春有你正是节目之一。青春有你采用计票机制,选手获得的票数越多,排名就越靠前。要求用Python编写程序,接收选手的姓名和票数,输出排序后的成绩。
时间: 2024-09-23 14:06:46 浏览: 98
在Python中,我们可以使用内置的`collections`模块中的`defaultdict`和`sorted`函数来实现这个功能。`defaultdict`用于避免在查找不存在的键时抛出异常,而`sorted`则可以根据票数对选手进行降序排列。这是一个简单示例:
```python
from collections import defaultdict
def idol_ranking():
# 创建默认字典来存储选手名和票数
rankings = defaultdict(int)
# 接收用户输入,假设input()返回的是字符串形式的姓名和票数
while True:
user_input = input("请输入选手姓名和票数(例如:张三 500),输入'quit'结束:")
if user_input.lower() == 'quit':
break
name, votes = user_input.split() # 分割输入的姓名和票数
rankings[name.strip()] += int(votes) # 更新选手票数
# 对选手进行排序并打印结果
sorted_rankings = dict(sorted(rankings.items(), key=lambda item: item[1], reverse=True))
for rank, (name, votes) in enumerate(sorted_rankings.items()):
print(f"{rank + 1}. {name}: {votes} 票")
idol_ranking()
```
在这个程序中,用户可以持续输入选手的姓名和票数,直到输入'quit'为止。然后按照票数从高到低进行排序,并显示每个选手的排名和票数。
阅读全文