如何输出字典中成绩前三的学号

假设:

stu={2001:[80,89,90],

     2002:[60,89,51],

     2003:[82,87,90],

     2004:[50,89,60],

     2005:[90,90,92],

     2006:[86,89,94],

     2007:[60,91,90],

     2008:[87,92,93],

     2009:[100,89,90],

     2010:[87,89,90]}

这里使用字典存储学生的学号和三门课程成绩输出,要求输出每门课前三名的学号信息。

关键技术——字典按键、值排序

d={"ok":1,"no":2}

#对字典按键排序,用元组列表的形式返回

d1 = sorted(d.items(), key=lambda d:d[0],reverse = False) #[('no', 2), ('ok', 1)]

#对字典按值排序,用元组列表的形式返回

d2 = sorted(d.items(), key=lambda d:d[1],reverse = False) #[('ok', 1), ('no', 2)]

print (d1,'\n',d2)

输出结果:

[('no', 2), ('ok', 1)]

[('ok', 1), ('no', 2)]

sorted(dict.items(), key=lambda e:e[0], reverse=True)

里面三个参数

  1. dict.items() #可迭代元素。
  2. key= lambda d:d[0]#d[0]表示按键,d[1]表示按值。
  3. reverse#默认是False,升序排列。当值为True时是降序排列。

返回的是一个列表,列表中是排列后的元组。

解决方案:

#按第一门课排序

d1 = sorted(stu.items(), key=lambda stu:stu[1][0],reverse = True)#默认是False,升序排列

print(d1)

#输出前三名学号

d=d1[:3]

print("第一门前三名学号:",d[0][0],d[1][0],d[2][0])

#按第2门课排序

d2 = sorted(stu.items(), key=lambda stu:stu[1][1],reverse = True)#默认是False,升序排列

print(d2)

#输出前三名学号

d=d2[:3]

print("第2门前三名学号:",d[0][0],d[1][0],d[2][0])

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值