为了账号安全,请及时绑定邮箱和手机立即绑定

假设我们用一组tuple表示学生名字和成绩:L = [(‘Bob’, 75), (‘Adam’, 92), (‘Bart’, 66), (‘Lisa’, 88)]请用sorted()对上述列表分别按名字排序,再按成绩从高到低排序。

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def student1(s1,s2):
    if s1[0]>s2[0]:
        return 1
    elif s1[0]<s2[0]:
        return -1
    else:
        return 0

print (sorted(L,key=student1))

大神帮忙看看为什么这样写不可以呀

正在回答

4 回答

L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]

#按名字排序

sorted(L, key=lambda x: x[0])

#按成绩降序

sorted(L, key=lambda x: -x[1])

#Python3代码

0 回复 有任何疑惑可以回复我~

楼上说的对去掉 key =。我测了一下 结果是升序排列,对的:

[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]


0 回复 有任何疑惑可以回复我~

还是不行呢 谢谢啦

0 回复 有任何疑惑可以回复我~

把 key= 去掉就可以了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

假设我们用一组tuple表示学生名字和成绩:L = [(‘Bob’, 75), (‘Adam’, 92), (‘Bart’, 66), (‘Lisa’, 88)]请用sorted()对上述列表分别按名字排序,再按成绩从高到低排序。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号