课程
/后端开发
/Python
/python进阶
L1 = [p1, p2, p3]L2 = sorted(L1,lambda p1, p2: cmp(p1.name, p2.name))
这里为什么只有p1, p2就可以正常运行了,不需要p3为什么
2019-08-01
源自:python进阶 4-3
正在回答
L2 = sorted(L1,lambda p1, p2: cmp(p1.name, p2.name))中的p1和p2并不是指的上面的实例p1和p2
lambda p1, p2: cmp(p1.name, p2.name)
相当于一个函数,函数中的p1和p2就是函数的参数,拿出来可能会比较好理解
L2 = sorted(L1,lambda p1, p2: cmp(p1.name, p2.name))
即
def sort_name(p1, p2): if p1.name > p2.name: return 1 else: return -1 L2 = sorted(L1, sort_name)
weixin_慕粉0189013 提问者
lambda 匿名函数中的P1,P2 只是一个形参,不是上面的实例名P1 P2
L2里面的p1和p2只是参数,不是指的L1里面的同名元素。。
L2 = sorted(L1,lambda x, y: cmp(x.name, y.name))
这样写就不蒙了
sudoRam
lllOrz 回复 sudoRam
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计