def compare(a, b):
"""
Return 1 if a > b, 0 if a equals b, and -1 if a < b
>>> compare (5, 7)
1
>>> compare (7, 7)
0
>>> compare (2, 3)
-1
"""
问问题
18626 次
1 回答
12
>>> def compare(a, b):
return (a > b) - (a < b)
>>> compare(5, 7)
-1
>>> compare(7, 7)
0
>>> compare(3, 2)
1
更长,更详细的方式是:
def compare(a, b):
return 1 if a > b else 0 if a == b else -1
其中,当展平时看起来像:
def compare(a, b):
if a > b:
return 1
elif a == b:
return 0
else:
return -1
第一个解决方案是要走的路,记住它是pythonic to bool
s like int
s
另请注意,Python 2 有一个cmp
执行此操作的函数:
>>> cmp(5, 7)
-1
但是在 Python 3cmp
中已经消失了,因为它通常用于例如比较。list.sort
现在正在使用key
函数而不是cmp
.
于 2013-05-16T06:00:27.097 回答