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

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

 

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值