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

Python中如何根据alist给定索引将blist对应位置的值设为0

原有代码错误点

  • 逻辑判断错误:if i==alist是将单个索引值和整个alist列表做相等对比,该条件永远为False,永远不会进入分支执行代码。
  • 语法&逻辑错误:blist[alist] == 0有两处问题,一是==是相等判断运算符,执行赋值操作需要用单等号=;二是不能直接把整个列表作为列表的下标使用。

正确实现

推荐直接遍历alist中的索引值修改blist对应位置,效率更高,还可以增加边界判断避免alist中的值超出blist索引范围引发报错:

alist = [8,7,4,2]
blist = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]

for idx in alist:
    # 边界判断,防止索引越界
    if 0 <= idx < len(blist):
        blist[idx] = 0

# 验证结果
print(blist)

执行后blist中索引为2、4、7、8的位置会被替换为0,其余位置保持原值不变。

如果你一定要用enumerate写法实现,也可以参考如下代码,不过该写法需要遍历整个blist,效率低于上面的实现:

for i, val in enumerate(blist):
    if i in alist:
        blist[i] = 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:27:03