我试图找出一种方法来查找列表中的所有整数是否按顺序递增。如果任何数字是非顺序的,我想得到索引。
mylist = [1,2,3,2]
所以,2比1(是),3比2(是),2比3(不,得索引)。
我可以将未排序的列表与排序列表进行比较,以确定它是否是顺序的,但我还想建立索引。有没有办法做到这一点?
由于 托比
答案 0 :(得分:1)
您可以使用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
答案 1 :(得分:1)
这应该可以解决问题:
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
返回非增加项的索引。
答案 2 :(得分:1)
我猜你正在寻找这样的东西:
>>> 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]