繁体   English   中英

python列表序号

[英]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.

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