为啥两次执行结果不一样?

>>> students=[('john','A',15),('jane','B',12),('dave','B','10')]
>>> sorted(students,key=lambda s:s[2])
[('jane', 'B', 12), ('john', 'A', 15), ('dave', 'B', '10')]
>>> sorted(students,key=lambda s:s[2])
[('jane', 'B', 12), ('john', 'A', 15), ('dave', 'B', '10')]
>>> sorted(students,key=lambda s:s[2],reverse=True)
[('dave', 'B', '10'), ('john', 'A', 15), ('jane', 'B', 12)]
>>> sorted(students, key=lambda s: s[2], reverse=True)
[('dave', 'B', '10'), ('john', 'A', 15), ('jane', 'B', 12)]


>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2])
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> sorted(students, key=lambda s: s[2], reverse=True)
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]### 题目描述

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 3.3k
3 个回答

两次中元素都不完全一样啊,一个最后的是'10',另外一个是10

元组里面第三个元素,一个是按int一个是按str类型吧,而且你的key是按第三个元素来排序的,int和str是不能比较大小的吧

python3.7 运行直接报错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题