【问题标题】:Python 3: Compare two numbers and return -1, 0 or 1 [duplicate]Python 3:比较两个数字并返回 -1、0 或 1 [重复]
【发布时间】:2021-11-21 11:31:54
【问题描述】:

是否有一个简单的函数可以比较数字 x 和 y,当 x 小于 y 时返回 -1,当 x 大于 y 时返回 1,当它们相等时返回 0?

如果不是,那么最短的方法是什么?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

Python2 中有一个 cmp() 方法可以完全满足您的要求,但它在 Python 3 中已停用。您可以同样创建此方法:

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

在文档here中已经提到。

cmp() 函数应该被视为消失,并且不再支持 cmp() 特殊方法。使用 lt() 进行排序,使用 eq() 和 hash(),以及根据需要进行其他丰富的比较。 (如果你真的需要 cmp() 功能,你可以使用表达式 (a > b) - (a

【讨论】:

  • 为什么停产了,对我来说似乎有用?但这是实现它的好方法,比使用 3 个 if 更好,因为我(和 Axe319)会这样做,谢谢
  • @FireFuro99 因为它很少需要,而且在需要时很容易实现,如您所见
猜你喜欢
  • 2015-01-19
  • 2015-03-19
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多