刷題過程中採用兩種方式對乙個多維列表進行初始化,最後得到的結果不同,很是疑惑,後來發現兩種初始化方式是有區別的!
capacity =
10num =
5valueexcel =[[
0for j in
range
(capacity +1)
]for i in
range
(num +1)
]valueexcel2 =[[
0]*(capacity+1)
]*(num+1)
# 這兩種方式都可以得到6*11的初始值為0的列表,但在後續賦值操作中,卻得到了截然不同的結果。
# 對valueexcel賦值
valueexcel[0]
[0]=
1# 得到的是:
# 對valueexcel2賦值
valueexcel2[0]
[0]=
1# 得到的是:
通過讀取valueexcel和valueexcel2中子列表的id,發現valueexcel中每個子列表的id都不相同;而valueexcel2中每個子列表的id都相同,即valueexcel2中的子列表是同一物件的位址,改變其中乙個,另乙個也會改變。
Python初始化列表
python初始化列表 下面我們就來介紹在python中初始化列表 我們建立大小為1000並使用零初始化的列表 的一些方法。arr for i in range 1000 0 arr i 0 while i 1000 0 3 方法三 使用列表推導 list comprehension 列表推導 li...
初始化 1 預設初始化 列表初始化
初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...
初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...