非常简单的代码嵌套示例:
代码所做的只是创建一个初始化为零的列表列表。它遍历列表的行和列,每个位置都有一个值。由于某种原因,当打印最终向量时,每行都会复制 2D 列表的最后一行。
Number_of_channels=2
Coefficients_per_channel=3
coefficient_array=[[0]*Coefficients_per_channel]*Number_of_channels
print coefficient_array
for channel in range(Number_of_channels):
for coeff in range(Coefficients_per_channel):
coefficient_array[channel][coeff]=coeff*channel
print coefficient_array[channel][coeff]
print coefficient_array
输出:
[[0, 0, 0], [0, 0, 0]]
0
0
0
0
1
2
[[0, 1, 2], [0, 1, 2]]
我实际上期望:
[[0, 0, 0], [0, 1, 2]]
有人知道这是怎么发生的吗?