1. 程式人生 > 程式設計 >解決Python二維陣列賦值問題

解決Python二維陣列賦值問題

當我們採用s=[[0]*3]*2初始化一個數組,然後對s[0][0]進行賦值,改變的是第一列所有的值。因為用s = [[0]*3]*2 初始化陣列,他表示的是指向這個列表的引用,所以當你修改一個值的時候,整個列表都會修改。

換一種初始化方式,就可以解決這個問題:

寫這個主要是因為今天在寫【機器人的運動範圍問題】:

地上有一個m行和n列的方格。一個機器人從座標0,0的格子開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數位之和大於k的格子。 例如,當k為18時,機器人能夠進入方格(35,37),因為3+5+3+7 = 18。但是,它不能進入方格(35,38),因為3+5+3+8 = 19。請問該機器人能夠達到多少個格子?

因為方格初始化問題導致bug,而浪費了很多時間。

以上這篇解決Python二維陣列賦值問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。