关于python中的顺序列表

时间:2014-04-07 05:34:06

标签: python

如果我的列表采用以下格式:

a=[1,3,4,5,8,10]

如何显示元素不会增加1?换句话说,如果我的列表是

a=[1,2,3,4,5,6]

该函数应该说它是顺序的,即每个元素比前一个元素大一个。提前谢谢。

5 个答案:

答案 0 :(得分:1)

>>> a=[1,2,3,4,5,6]
>>> all(i==j for i,j in enumerate(a, a[0]))
True

>>> a=[1,3,4,5,8,10]
>>> 
>>> all(i==j for i,j in enumerate(a, a[0]))
False

答案 1 :(得分:1)

进行测试的一种简单方法是

if all(x[i] == x[0]+i for i in range(1, len(x))):
    ...

答案 2 :(得分:0)

您可以使用zipset

def check_sequential(a):
    return set([p - q for p, q in zip(a[1:], a)]) == {1}

print check_sequential([1,3,4,5,8,10])
print check_sequential([1,2,3,4,5])

输出:

False
True

答案 3 :(得分:0)

使用numpy。

区分它

使用Max。

答案 4 :(得分:0)

对于简短列表,您可以自己创建一个顺序范围并进行比较

>>> a = [1,2,3,4,5,6]
>>> a == range(a[0], a[-1] + 1) # in Python3, you need list(range(...))
True
>>> a = [1,3,4,5,8,10]
>>> a == range(a[0], a[-1] + 1)
False