Python 3:比较两个数字并返回 -1、0 或 1

Fir*_*o99 -1 python python-3.x

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

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

Shi*_*Roy 12

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

def compare(a, b):
    return (a > b) - (a < b) 
Run Code Online (Sandbox Code Playgroud)

这里的文档中已经提到了。

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

  • @FireFuro99,因为很少需要它,并且当需要它时,它很容易实现,如您所见 (3认同)