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

为什么不用简单的sorted函数呢?

class Person(object):

    pass


p1 = Person()

p1.name = 'Bart'


p2 = Person()

p2.name = 'Adam'


p3 = Person()

p3.name = 'Lisa'


L1 = [p1.name, p2.name, p3.name]

L2 = sorted(L1)


print L2[0]

print L2[1]

print L2[2]


正在回答

3 回答

你考虑一下,如果需求改为按照年龄排序,就得把你的代码里的“L1 = [p1.name, p2.name, p3.name]”改为“L1 = [p1.age, p2.age, p3.age]”。

如果用示例的写法,把“L2 = sorted(L1,lambda x,y:cmp(x.name,y.name))”改为“L2 = sorted(L1,lambda x,y:cmp(x.age,y.age))”就可以了,是不是这样写更灵活

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

yongmixiaoxuesheng

666
2018-09-14 回复 有任何疑惑可以回复我~
#2

坚持到死

L2 = sorted(L1,lambda x,y:cmp(x.name,y.name))这里x,y不是类里的成员变量,x,y为什么可以直接使用x.name和y.name 呢?不太明白,求解释
2018-09-19 回复 有任何疑惑可以回复我~
#3

liujlb 回复 坚持到死

x、y是形参啊
2018-09-25 回复 有任何疑惑可以回复我~

任务上面的要求你只做到了最后输出结果一样,那你还不如直接L2 = [ p2.name,p1.name, p3.name],还调用啥排序算法

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

你这么做 数组中的元素类型不同了

原本时 Person 的实例的数组

你排序的只是 string 的实例的数组

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

举报

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

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

进入课程

为什么不用简单的sorted函数呢?

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

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

帮助反馈 APP下载

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

公众号

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