如果我的列表采用以下格式:
a=[1,3,4,5,8,10]
如何显示元素不会增加1?换句话说,如果我的列表是
a=[1,2,3,4,5,6]
该函数应该说它是顺序的,即每个元素比前一个元素大一个。提前谢谢。
答案 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)
您可以使用zip
和set
:
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