list1=
[none]*
5
使用這種方式建立乙個普通的一維列表是沒問題的
可以檢測一下
list1=
[none]*
5list1[3]
=1print
(list1)
[none
,none
,none,1
,none
]
但是,當用這種方式建立乙個多維列表時,就會出現以下問題
list2=[[
none]*
5]*5\
list2[2]
[3]=
1print
(list2)[[
none
,none
,none,1
,none],
[none
,none
,none,1
,none],
[none
,none
,none,1
,none],
[none
,none
,none,1
,none],
[none
,none
,none,1
,none
]]
這樣建立出的多維列表,修改其中乙個子列表中元素時,所有子列表的相應元素都會改變。
查閱官方文件發現,這種建立的列表只是對乙個子列表的引用,所以子列表改變,其餘子列表也都會改變
解決辦法就是換一種建立方法,下列是我經常用的幾種:
list1=[[
0,0,
0],[
0,0,
0]]#資料量少的時候這個辦法還可以,而且不會出錯
list2=[[
none
for i in
range(4
)]for i in
range(3
)]#使用for迴圈建立乙個列表,原理上和上一種是一樣的,這個我用的最多
#可以驗證一下
lis2[0]
[1]=
1print
(list2)[[
none,1
,none
,none],
[none
,none
,none
,none],
[none
,none
,none
,none]]
#再就是用numpy陣列,這個在深度學習中經常用
list3=np.zeros((3
,4))
python列表建立操作 python列表操作
建立列表 sample list a 1,a b python 列表操作 sample list a b 0,1,3 得到列表中的某乙個值 value start sample list 0 end value sample list 1 刪除列表的第乙個值 del sample list 0 在列...
python列表建立操作 python列表操作
列表是最常用的python資料型別,它可以作為乙個方括號內的逗號分隔值出現。列表的資料項不需要具有相同的型別。如 list a b 2,5,1 1 新建列表 stus 建立空列表 stus1 list 建立空列表 print stus print stus1 stus 范冰冰 維達 soon 上述 ...
python 列表的建立
python 字典 資料型別的分類 可變 不可雜湊 的 list dict set 不可變 可雜湊 的 str bool int tuple 1.列表的建立 方法一 l1 1,2,哈哈哈 方法二 li list 方法三 列表推導式 2.增 insert extend li 520 python 12...