最初にゼロに初期化した後、多次元リストに値を代入しようとしました。 以下は、edge_strengthとinitialProbがmultiDリストであるコードです。Pythonの2Dリストの値の割り当てが正しくありません
edge_strength = [[1,2,3],[3,4,5],[6,7,8]]
initialProb = [[0]*3]*3
initialColumn =1
denominator = 10
for r in range(0,3):
initialProb[r][initialColumn] = float(edge_strength[r][initialColumn])/denominator
print initialProb
しかし、私は終了しinitialProbリストを印刷したとき、私は答えました - [[0、0.7、0]、[0、0.7、0]、[0、0.7、0]] 代わりに、それがなければなりませんされた - [[0、0.2、0]、[0、0.4、0]、[0、0.7、0]]。
誰も私にこの奇妙な動作と回避策を説明できますか?
おお解決する必要があります!範囲(3)のrについてリスト[[0] * 3)を初期化する解決策は、問題を解決しました:)ありがとう –