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

Python将列表元素相加赋值给矩阵结果异常如何修正

问题原因

你原代码的四层嵌套循环逻辑存在错误:每次遍历到一组b和c的值时,内层的i、j循环会把整个矩阵的所有元素统一覆盖为当前的b+c。当循环执行到最后一组b=20、c=20时,矩阵所有位置都会被赋值为40,因此输出全为40的结果。

修正方案

方案1:调整循环逻辑,保留原生列表实现

删除冗余的两层值遍历循环,仅保留索引遍历直接对应矩阵位置赋值即可:

import numpy as np

# 注意:bin是Python内置函数名,建议更换变量名避免冲突
bin_list = [10, 20]
cost = [10, 20]

# 创建2x2结果矩阵
res_mat = [[0.0 for i in range(len(bin_list))] for j in range(len(cost))]

for i in range(len(bin_list)):
    for j in range(len(cost)):
        res_mat[i][j] = bin_list[i] + cost[j]

print(np.array(res_mat))

运行后输出结果:

[[20. 30.]
 [30. 40.]]

方案2:利用numpy广播简化代码

已引入numpy的场景下无需手动写循环,通过广播特性可直接生成目标矩阵:

import numpy as np

bin_arr = np.array([10, 20])
cost_arr = np.array([10, 20])
res_mat = bin_arr.reshape(-1, 1) + cost_arr
print(res_mat)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:07