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

在3,6版本运行,报<lambda>() missing 1 required positional argument: 'a' 错误是什么意思怎么解决


class Person(object):
    pass

p1 = Person()
p1.name = 'Bart'

p2 = Person()
p2.name = 'Adam'

p3 = Person()
p3.name = 'Lisa'

L1 = [p1, p2, p3]
L2 = sorted(L1,key=lambda p1,a : cmp(p1.name,a.name))

print (L2[0].name)
print (L2[1].name)
print (L2[2].name)


正在回答

2 回答

Python 3.X 的版本中已经没有 cmp 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有:

operator.lt(a, b)operator.le(a, b)operator.eq(a, b)operator.ne(a, b)operator.ge(a, b)operator.gt(a, b)operator.__lt__(a, b)operator.__le__(a, b)operator.__eq__(a, b)operator.__ne__(a, b)operator.__ge__(a, b)operator.__gt__(a, b)


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

幕布斯9454072 提问者

非常感谢!
2017-11-10 回复 有任何疑惑可以回复我~

请问下这个做出来了?

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

举报

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

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

进入课程

在3,6版本运行,报<lambda>() missing 1 required positional argument: 'a' 错误是什么意思怎么解决

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信