非常に単純なコードのネストされた例:
コードが行うのは、ゼロに初期化されたリストのリストを作成することだけです。リストの行と列を反復処理し、各位置に値が与えられます。何らかの理由で、最終的なベクトルが出力されるときに、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]]
なぜこれが起こっているのか誰にも分かりますか?