python - 在给定条件的情况下查找列表的最小和最大索引

标签 python list numpy indices

我有一个列表,比方说:

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/

相关文章:

python 子进程和 unicode execv() arg 2 必须只包含字符串

Python 函数返回无序列表对象

Python Pandas 将列表列表的一列扩展为两个新列

python - 在循环内逐列修改numpy数组

python - blender : Create custom physics via scripts

python - Slack 机器人,注册点击消息按钮

python - pandas,正确处理行元素内的 numpy 数组

Python OpenCV : Refresh images when a key is pressed

python - matplotlib 不使用 pyplot.show() 使用 qt4agg 后端打开绘图并且找不到 sip

r - 如何替换列表中所有元素的特定值