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

Python:根据Cond列表将J列表对应True位置元素置0的问题

问题排查与解决

你的代码核心错误是赋值时误用了比较运算符:循环中的J[i]==0是双等号,这是用来判断两个值是否相等的比较操作,完全不会修改J列表里的元素。要修改列表元素,必须使用单等号=来完成赋值。

修正后的代码

J=[0, 2, 0, 6, 7, 9, 10]
Cond=[False, True, False, True, True, True, True]

for i in range(len(J)):
    if Cond[i]:  # 无需写Cond[i]==True,直接判断布尔值更简洁
        J[i] = 0  # 改用单等号完成赋值
print(J)

运行这段代码后,输出就是你期望的:

[0, 0, 0, 0, 0, 0, 0]

更Pythonic的写法

如果想让代码更简洁,可以用列表推导式一行完成操作,避免手动处理索引:

J = [0 if cond else num for num, cond in zip(J, Cond)]
print(J)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:04:59