Python建立列表

2021-10-06 14:47:50 字數 1364 閱讀 5271

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...