我有一个列表,比方说:
list_A = [0,0,0,1.0,2.0,3.0,2.0,1.0,0,0,0]
我想找到此列表中 list_A > 0
的最小和最大索引,即在上面的示例中,它将是 3 和 7。
对于其他单调递增的列表,我一直在使用 np.searchsorted
,例如 np.searchsorted(list,[0.5,1.0])
来查找索引其中列表分别是 介于 0.5 和 1.0 之间
。
但这种情况完全不同,np.searchsorted
在这里不起作用,或者它可能以我不知道的方式起作用!
最佳答案
用索引过滤压缩列表并取最小值和最大值:
>>> list_A = [0,0,0,1.0,2.0,3.0,2.0,1.0,0,0,0]
>>> filtered_lst = [(x,y) for x,y in enumerate(list_A) if y > 0]
>>> max(filtered_lst)
(7, 1.0)
>>> min(filtered_lst)
(3, 1.0)
如果你只需要索引,解压返回值:
>>> maX,_ = max(filtered_lst)
>>> maX
7
关于python - 在给定条件的情况下查找列表的最小和最大索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34653463/