最近在使用python的二維數組時,發現了一個問題:
使用arr = [[0] * n] * n
這個形式時,發現修改數組裏的一個數據時,會同時改變一列的數據,通過搜索發現是是引用機制的問題,原理解析:二維數組引用解釋。
那麼我們如何定義一個可以修改數據的二維數組呢?
可以使用這種形式:
arr = [[0] * n for i in range(n)]
注:[0] * n 爲一維數組,for i in range(n)爲將該一維數組做n次循環來實現二維數組
最近在使用python的二維數組時,發現了一個問題:
使用arr = [[0] * n] * n
這個形式時,發現修改數組裏的一個數據時,會同時改變一列的數據,通過搜索發現是是引用機制的問題,原理解析:二維數組引用解釋。
那麼我們如何定義一個可以修改數據的二維數組呢?
可以使用這種形式:
arr = [[0] * n for i in range(n)]
注:[0] * n 爲一維數組,for i in range(n)爲將該一維數組做n次循環來實現二維數組