繁体   English   中英

关于python中的顺序列表

[英]About a sequential list in python

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

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

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

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

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

>>> 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

一种简单的测试方法是

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

你可以使用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

使用numpy。

区分它

使用最大。

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

>>> 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM