首页 > 解决方案 > 如果它的元素满足Python中的条件,如何有效地提取列表索引

问题描述

目标是提取列表索引,如果其元素位于两个引用值之间。

下面的代码回答了这个目标。

l=[0,61,83,99]

range_set=[(first, second) for first, second in zip ( l, l [1:] )]
range_el = range ( 6, 100, 6 )
all_set=[]
for x,y in range_set:
    val=[idx for idx, element in enumerate ( range_el ) if x <= element  and element <= y]
    all_set.append(val)

但我想知道是否有更紧凑和更有效的方式来实现这一目标。Numpy欢迎推荐使用

标签: pythonnumpyindexingconditional-statements

解决方案


尝试

arr = np.arange ( 6, 100, 6 )

val=np.nonzero(x<arr)&(arr<y))[0]

代替你内心的理解。


推荐阅读