dparray= [[0] * n] * m
dparray= [[0 for _ in range(n)] for _ in range(m )]
dp = [[0] * n for _ in range(m )]
執行測試指令碼:
dp1 = [[0] * n] * m
dp2 = [[0 for _ in range(n)] for _ in range(m )]
dp3 = [[0] * n for _ in range(m)]
if dp1 == dp2 == dp3 :
print('dp1 == dp2 == dp3 is',true)
dp1[1][1] = 1
dp2[1][1] = 1
dp3[1][1] = 1
####
if dp1 == dp2 :
print('修改 dp[1][1]之後 :dp1 == dp2 is ',true)
else:
print('\n修改 dp[1][1]之後 :dp1 == dp2 is ',false)
print(dp1)
print(dp2)
if dp2 == dp3:
print('\n修改 dp[1][1]之後 :dp2 == dp3 is ',true)
print(dp2)
print(dp3)
執行指令碼輸出結果:
dp1 == dp2 == dp3 is true
修改 dp[1][1]= 1之後 :dp1 == dp2 is false
[[0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0]]
[[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0]]
修改 dp[1][1]= 1之後 :dp2 == dp3 is true
[[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0]]
[[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0]]
結論:[[0] * n] * m生成的陣列 和 for迴圈生成的陣列存在本質區別,在使用過程,替換某一位置數值的時候就會產生異常。 python三階魔方 三階魔方還原公式
1.第二層稜塊歸位 2.頂層十字 3.頂層稜中間塊歸位 這一步的目的是使頂層的4個稜中間塊全部歸位。轉動頂層 u 若可以使乙個稜中間塊歸位 如下圖左,這裡以 紅 黃 塊為例 而其他3個都不能歸位,則將 紅 黃 所在這一面 紅面 定為正前面 f 按照圖示步驟轉動,可使4塊稜中間塊全部歸位,或出現下一種...
踏上Python第三階
系統睡眠,可以暫停顯示 import time time.sleep 3 睡眠3秒python continue 語句跳出本次迴圈,而break跳出整個迴圈。python 如何將整數轉化成二進位制字串 1 你可以自己寫函式採用 2 的方式來算。binary lambda n if n 0 else ...
三階幻方python解法
三階幻方 1 9共9個數字填入九宮格中,九宮格中間元素為5,各行 列 對角線元素相加和為15。求解出所有符合條件的排列。python解法1 由於九宮格中間元素已確定,剩下元素中選擇乙個數填入tmp 0 0 再選擇乙個數填入tmp 0 1 則剩下元素都可根據已填元素確定,通過兩層巢狀迴圈實現。lst ...