Python列表中第一次出现零的索引
我有一张这样的清单Python列表中第一次出现零的索引,python,python-3.x,list,numpy,numpy-ndarray,Python,Python 3.x,List,Numpy,Numpy Ndarray,我有一张这样的清单 import numpy as np myList = [0.0 , 0.0, 0.0, 2.0, 2.0, 0.0, 2.5, 0.0, 0.0, 0.0, 3.0, 0.0] 我可以找到非零出现的索引,如下所示 I = np.nonzero(myList) for i in I: print(i) 我能找到零的第一次出现的索引吗?像下面这样 [0, 5, 7, 11] [0, 5, 7, 11] 由于NumPy被标记,这里有两种方法- In [44]: m =
import numpy as np
myList = [0.0 , 0.0, 0.0, 2.0, 2.0, 0.0, 2.5, 0.0, 0.0, 0.0, 3.0, 0.0]
我可以找到非零出现的索引,如下所示
I = np.nonzero(myList)
for i in I:
print(i)
我能找到零的第一次出现的索引吗?像下面这样
[0, 5, 7, 11]
[0, 5, 7, 11]
由于NumPy被标记,这里有两种方法-
In [44]: m = np.r_[False,np.equal(myList,0)]
In [45]: np.flatnonzero(m[:-1]<m[1:])
Out[45]: array([ 0, 5, 7, 11])
使用np.diff
的另一种方法,用于一个班轮-
In [46]: np.flatnonzero(np.diff(np.r_[0,np.equal(myList,0)])==1)
Out[46]: array([ 0, 5, 7, 11])
使用阵列输入a
-
In [52]: np.flatnonzero(np.diff(np.r_[0,a==0])==1)
Out[52]: array([ 0, 5, 7, 11])
用python
i = True
r = []
l = [0.0 , 0.0, 0.0, 2.0, 2.0, 0.0, 2.5, 0.0, 0.0, 0.0, 3.0, 0.0]
for a in range(len(l)):
if l[a] == 0:
if i:
r.append(a)
i = False
else:
i = True
print(r)
印刷品
[0, 5, 7, 11]