编程语言: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为升序,即从小到大。

 

更多推荐

python基础编程小实例12——比赛票数排序(初级)