确定序列是否递增? (蟒蛇)

时间:2019-01-29 08:23:09

标签: python

def isIncreasing(seq):
    flag = True
    for i in range(len(seq) - 1):
        if seq[i + 1] < seq [i]:
            flag = False
    return flag


a = [1, 2, 3, 4, 5]  # print True
b = [2, 3, 1, 5, 4]  # print False

我有两个序列。 如果序列递增,还有什么更好的方法来修改我的函数?

3 个答案:

答案 0 :(得分:1)

您可以在一个衬里中完成它:

all(seq[i] < seq[i+1] for i in range(len(seq)-1))

积分:this answer

答案 1 :(得分:1)

找到一个更好的返回。您可以利用pythons built in functions来做到这一点:

def isIncreasing(seq):
   return all(a<b for a,b in zip(seq,seq[1:]))

这会将您的序列压缩成对:

[1,2,3,4] => [(1,2),(2,3),(3,4)]

并检查每对。 all()一旦找到False就终止。

文档

答案 2 :(得分:1)

使用numpy.diff()all()

In [33]: all(i>=1 for i in np.diff(b))
Out[33]: False

In [34]: all(i>=1 for i in np.diff(a))
Out[34]: True