Python使用for循环创建矩阵:实现列表元素按指定索引赋值到二维数组
代码修正方案
错误原因
你原有代码中range(1)只会生成单个值0,导致x、y全程固定为0,无法输出需要的1值,循环的取值范围和逻辑设计不符合需求。
修正后的代码
如果需要实现目标序列输出+赋值,可以直接用如下符合逻辑的代码:
# 若fixture还未初始化,先执行这行创建2行2列的结构 fixture = [[0,0],[0,0]] z = 0 for x in range(2): for y in range(2): # 输出目标序列 print(z, x, y) # 完成比分赋值 fixture[x][y] = scoreFixed[z] z += 1
如果你必须严格保留三层for循环的写法,可以调整为:
fixture = [[0,0],[0,0]] for z in range(4): x = z // 2 for _ in range(1): y = z % 2 for __ in range(1): print(z, x, y) fixture[x][y] = scoreFixed[z]
执行效果
运行后会输出你需要的目标序列:
0 0 0 1 0 1 2 1 0 3 1 1
同时fixture会被正确赋值为[[1,2],[3,4]],完全匹配你的赋值需求。
内容的提问来源于stack exchange,提问作者safnasfsa
相关产品推荐
相关产品推荐

