我从0到9得到一堆5个数字的元组。我想检查元组是按升序还是降序排序(即12345 02455 97311)。怎么可能呢?
答案 0 :(得分:2)
试试这个
if some_tuple == tuple(sorted(some_tuple, reverse=True)):
# Order is Descending
elif some_tuple == tuple(sorted(some_tuple)):
# Order is Ascending
else:
# No order
答案 1 :(得分:1)
让它保持简单和愚蠢。
# Returns 1 if ascending, -1 if descending and 0 if no order
def check_sorted(t):
assert len(t) >= 2
ascending = t[1] > t[0]
norm = lambda d : d if ascending else -d
for i in range(2, len(t)):
if norm(t[i] - t[i-1]) < 0:
return 0
return 1 if ascending else -1
答案 2 :(得分:0)
最简单的检查是:
ascending = x[0] < x[-1]
只有在您知道:
时才会有效答案 3 :(得分:0)
这样可以解决问题:
def which_order(t):
if tuple(sorted(t)) == t:
return 'ascending'
if tuple(sorted(t, reverse=True)) == t:
return 'descending'
return 'out-of-order'