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
最初の解決策は行くべき道です.sをsのように扱うのはpythonicであることを覚えておいてください.bool
int
cmp
また、Python 2 にはこれを行う関数があることに注意してください。
>>> cmp(5, 7)
-1
ただし、Python 3cmp
では、比較などに通常使用されるため、なくなりました。の代わりに関数list.sort
を使用してダウンしています。key
cmp
于 2013-05-16T06:00:27.097 に答える