比較以下兩種數(shù)組初始化:
arr1 = [[0]*5]*5
arr2 = [[0 for i in range(5)] for j in range(5)]
乍看都是初始化一個5*5的二維數(shù)組佩微,但若都執(zhí)行相同的賦值語句后,結(jié)果卻大不一樣:
arr1[0][0] = 1 # arr1會變?yōu)閇[1,0,0,0,0],[1,0,0,0,0],[1,0,0,0,0],[1,0,0,0,0],[1,0,0,0,0]]
arr2[0][0] = 1 # arr2會變?yōu)閇[1,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
下圖解釋了arr1的初始化和賦值的邏輯
arr1初始化
arr1賦值