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

如何根据索引列表将二维列表指定位置元素替换为1?

无需Pandas:将数组指定索引位置替换为1的解决方案

嘿,我来帮你搞定这个问题!你想要根据indexes里的索引列表,把example_array对应位置的元素改成1,而且不需要用Pandas对吧?其实用Python原生的循环就能轻松实现,逻辑清晰还不容易出错。

解决方案代码

首先先定义你的原始数组:

example_array = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
indexes = [[1,2,3], [2,3], [0,4,2], [1,4,3], [0,4,3], [1,2,3], [1,2]]

然后用两层循环处理:

# 遍历每一行的索引,以及该行需要设置为1的列索引列表
for row_num, col_indexes in enumerate(indexes):
    # 对当前行的每个目标列索引,把对应位置设为1
    for col_num in col_indexes:
        example_array[row_num][col_num] = 1

验证结果

运行完上面的代码后,打印example_array就能得到你想要的预期结果:

print(example_array)
# 输出:
# [[0,1,1,1,0],[0,0,1,1,0],[1,0,1,0,1],[0,1,0,1,1],[1,0,0,1,1],[0,1,1,1,0],[0,1,1,0,0]]

为什么你之前的Pandas方法没生效?

顺便提一下,你之前的Pandas代码里有几个小问题:比如for row in matrix其实是遍历DataFrame的列名,不是行;而且x_u和x这些变量都没有定义,自然没法正确赋值。不过既然你不需要用Pandas,这个原生方法就完全够用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:08:44