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

为什么L2=sorted(L1)不对?不是默认从小到大排序吗?

为什么L2=sorted(L1)不对?不是默认从小到大排序吗?

正在回答

1 回答

很简单的。你直接 L2 = sorted(['Bart', 'Adam', 'Lisa']) 就是你说的意思。

但是这里的L1不是字符串的list,里面都是Person的实例。对这些实例肯定就没有办法按照默认排序方式了,要自己添一个排序方式告诉它,也就是 L2 = sorted(L1, lambda x,y: cmp(x.name,y.name))


1 回复 有任何疑惑可以回复我~
#1

邬玺邬玺 提问者

就是把Person里的元素取出来组成新的list再进行比较对吧?
2018-03-05 回复 有任何疑惑可以回复我~
#2

慕尼黑0342519 回复 邬玺邬玺 提问者

Person()类是你自己定义的数据类型,python不知道如何进行比较,故你要告诉python你定义的数据的比较规则(lambda x,y: cmp(x.name,y.name)),cmp(x.name,y.name)函数就是定义的比较规则。知道规则后python才能帮你排序。并不会取出元素组成新的list再比较。
2018-04-17 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么L2=sorted(L1)不对?不是默认从小到大排序吗?

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

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

帮助反馈 APP下载

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

公众号

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