You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中实现类似np.where()的列表筛选:根据Cond提取对应J元素

Python中实现类似np.where()的列表筛选方法

你需要提取布尔列表Cond中值为False时,对应嵌套列表J里的元素,以下是几种无需依赖numpy的等价实现方式:

示例输入

J = [[1,2,4,6,7]]
Cond = [False, True, False, True, False]

预期输出

[1,4,7]

1. 列表推导式(推荐)

这是最简洁且Pythonic的写法,通过zip将元素与条件一一配对,筛选符合要求的项:

result = [j for j, cond in zip(J[0], Cond) if not cond]
print(result)

2. 结合filter与lambda表达式

适合习惯函数式编程的场景,但注意如果J的子列表存在重复元素,index方法会返回第一个匹配项的位置,可能导致结果不准确:

result = list(filter(lambda x: not Cond[J[0].index(x)], J[0]))
print(result)

3. 若允许使用numpy(原np.where方式)

如果可以依赖numpy库,直接用np.where配合布尔索引即可:

import numpy as np
J_np = np.array(J)
Cond_np = np.array(Cond)
result = J_np[0][np.where(~Cond_np)].tolist()
print(result)

内容的提问来源于stack exchange,提问作者jcbose123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:35:22