創建一個3*3的2維數組
錯誤方法1:
array = [0, 0, 0] matrix = [array*3] print matrix
輸出:[[0,0,0,0,0,0,0,0,0]],錯誤
錯誤方法2:
array = [0, 0, 0] matrix = [array] * 3 print matrix
輸出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]],看起來正確
但是:
matrix[0][1] = 1
print matrix
輸出:[[0, 1, 0], [0, 1, 0], [0, 1, 0]],錯誤
為什么呢?因為matrix = [array] * 3操作中,只是創建3個指向array的引用,所以一旦array改變,matrix中3個list也會隨之改變。
正確方法:
方法1 直接定義 matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 方法2 間接定義 matrix = [[0 for i in range(3)] for i in range(3)]
參考:https://www.cnblogs.com/woshare/p/5823303.html
