编程语言:python3.9
题目
比赛采用计票机制,选手获得的票数越多,排名就越靠前。 本实例要求编写程序,接收选手的姓名和票数,输出排序后的成绩。
本题基于还没有学到如何使用python打开文件的操作,所以使用列表的方式展示票数情况。
代码
ticket = ['小刚','小红','小红','小明','小明',\
'小红','小红','小红','小刚','小刚',\
'小明','小刚','小明','小红','小红',\
'小明','小明','小刚','小红','小红',\
'小刚','小刚','小刚','小明','小明',\
'小刚','小刚','小明','小明','小明']
# 语句过长可用\作续行符
d={}
for name in ticket:
d[name] = d.get(name,0)+1 # 如果没有该选手姓名,则新建一个以其姓名为key的字典元素并+1
lst = list(d.items())
lst.sort(key = lambda x:x[1], reverse = True) # 根据票数多少降序排列
for i in range(len(lst)):
print('{}:{}'.format(lst[i][0],lst[i][1]))
运行结果
?代码解析
dict.get(key, default = None) :
- key ——字典中要查找的键
- default ——如果指定的值不存在,返回该默认值
lambda函数:(下图引用自菜鸟教程)
?list.sort(key = None, reverse = False)函数:
- key ——为指定可迭代对象中的一个元素来进行排序。
- reverse —— 排列规则,True为降序,即从大到小;False为升序,即从小到大。
?
|