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
"""
答案 0 :(得分:11)
>>> 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
第一个解决方案是要走的路,记住它is pythonic to treat bool
s like int
s
另请注意,Python 2具有cmp
函数,可以执行此操作:
>>> cmp(5, 7)
-1
但是在Python 3中cmp
已经消失了,因为比较它通常用于例如。 list.sort
现在使用key
函数代替cmp
。{/ p>