【Python】二重ループが一部同期するバグ【バグ】
n×n行列の配列を
A=[[0]*n]*n
で初期化した後、
for i in range(n):
for j in range(n):
A[i][j]=(i,j)
等で、値を代入すると、A=[[(n,0),(n,1),…],[(n,0),(n,1),…],…]となるバグが発生した。
解決策は、
import numpy as np
A=np.zeros((n,n))
とした後、同じようにループを作ればいい。内包表記が複雑になり過ぎる場合、for文を使わざるをえないので、このようなバグには注意しましょう。