循环遍历大型列表时出错

时间:2015-03-17 18:42:45

标签: python python-2.7

answer_matrix=[["n.a"]*matrix_size]*matrix_size

我的代码

for c in a:
    if answer_matrix[c[0]-1][c[1]-1]=="n.a":
        answer_matrix[c[0]-1][c[1]-1]=c[2]

现在a看起来像这样

>>> a[0]
[1, 2, 1.3e-05, 6e-06, 0.0, 0.0, 0.0, 0.0, 0.0]
>>> a[1]
[1, 3, 0.000949, 0.000142, 0.0, 0.0, 1.8e-05, 5e-06, 0.00011]
>>> a[2]
[1, 4, 0.000417, 0.000126, 0.0, 0.0, 0.0, 0.0, 5.4e-05]

这是一个列表列表,前两个条目是行和列(尚未使用numpy)

我的问题是,在运行for循环后,answer_matrix会在不应该的位置进行修改。

例如,在没有[1, 1, ...]条目的情况下,我发现answer_matrix[0][0]已更改为9e-06

当我试图摆脱for循环并以c=a[0]运行代码时,代码块工作正常。

到底发生了什么?

0 个答案:

没有答案