python - 如果它的元素满足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
欢迎推荐使用
解决方案
尝试
arr = np.arange ( 6, 100, 6 )
和
val=np.nonzero(x<arr)&(arr<y))[0]
代替你内心的理解。
推荐阅读
- lambda - 嵌套 lambda 如何在球拍中工作?
- .net - .Net Core - 如何发布具有 n 层的解决方案
- sql-server - 获得总排名
- reactjs - 一审状态未更新
- java - 带有 MongoDb 驱动程序的 Open Shift 容器中的 Java 内存堆空间问题
- jenkins - 在循环中创建嵌套的并行阶段 Jenkins 声明式管道
- python - 如何选择纬度 | 长 | postgis python中给定“多边形(,,,)”的名称
- c++ - 存储引用的 C++ 优化破坏代码
- python - (Python plotly)如何在 Streamtube 图中修复管的局部半径?
- windows - 复制 findstr 结果后的行