[英]python list sequential numbers
我试图找出一种方法来查找列表中所有整数是否都按顺序递增。 如果有任何数字是非顺序的,我想获取索引。
mylist = [1,2,3,2]
因此,将2大于1(是),将3大于2(是),将2大于3(否,获取索引)。
我可以将未排序的列表与已排序的列表进行比较,以找出是否是顺序的,但我也想建立索引。 有没有办法做到这一点?
谢谢托比
您可以使用enumerate
为您做到这一点:
In [1]: mylist = [1,2,3,2]
In [2]: for idx, element in enumerate(mylist):
...: if idx+1 != element:
...: print element, idx
...:
2 3
如果您的序列可以从任意数字开始,
In [1]: mylist = [2,3,4,2,7]
In [2]: for idx, element in enumerate(mylist):
....: if idx + mylist[0] != element:
....: print element, idx
....:
2 3
7 4
这应该可以解决问题:
def nonincr_index(l):
if not l:
return 0
prev=l[0]
for n,i in enumerate(l):
if i<prev:
return n
prev=i
return len(l)
>>> nonincr_index([1,2,3,2])
3
它返回非递增项目的索引。
我想您正在寻找这样的东西:
>>> mylist = [1,2,3,2,3,5,6,3,7,8,6]
>>> [i+1 for i in range(len(mylist)-1) if mylist[i]>mylist[i+1]]
[3, 7, 10]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.