如何在 Python 3 中使用 cmp()?

新手上路,请多包涵

我无法让命令 cmp() 工作。

这是代码:

 a = [1,2,3]
b = [1,2,3]
c = cmp(a,b)
print (c)

我收到错误:

 Traceback (most recent call last):
  File "G:\Dropbox\Code\a = [1,2,3]", line 3, in <module>
    c = cmp(a,b)
 NameError: name 'cmp' is not defined
[Finished in 0.1s]

原文由 BenFire 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 468
2 个回答

正如评论中提到的, cmp 在Python 3中不存在。如果你真的想要它,你可以自己定义它:

 def cmp(a, b):
    return (a > b) - (a < b)

这取自原始 的 What’s New In Python 3.0 。确实需要它的情况非常少见(尽管并非闻所未闻),因此您可能想考虑一下这是否真的是您做任何事情的最佳方式。

原文由 DSM 发布,翻译遵循 CC BY-SA 3.0 许可协议

In Python 3.x you can import operator and use operator module’s eq() , lt() , etc… instead of cmp()

原文由 maxin 发布,翻译遵循 CC BY-SA 4.0 许可协议

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