程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python 構建二位數組的兩種不同的方式,具有巨大區別

編輯:Python

python 構建二位數組的兩種不同的方式,具有巨大區別

x=2
z=2

方式1:

Z = [[0]*z]*x

此時對Z的[0][0]元素進行賦值時

Z[0][0]=100

可以看到每個list的第一個元素都是100了;為什麼會這樣呢?因為*x,是對子list創建了多個引用,而不是在內存中開辟出新的值 

方式2:

res = [[0] * z for _ in range(x)]

res[0][0]=100

 

這裡的for _ in range(x)代表的是,在內存中開辟多個塊,所以不會有引用的問題。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved