python學習筆記 多維陣列初始化

2021-08-09 05:01:01 字數 835 閱讀 9704

python中初始化乙個5 x 3每項為0的陣列,最好方法是:

multilist = [[0 for col in range(5)] for row in range(3)]

我們知道,為了初始化乙個一維陣列,我們可以這樣做:

alist = [0] * 5

沒錯,那我們初始化乙個二維陣列時,是否可以這樣做呢:

multi = [[0] * 5] * 3

其實,這樣做是不對的,因為[0] * 5是乙個一維陣列的物件,* 3的話只是把物件的引用複製了3次,比如,我修改multi[0][0]:

multi = [[0] * 5] * 3

multi[0][0] = 'love china'

print multi

輸出的結果將是:

[['love china', 0, 0, 0, 0], ['love china', 0, 0, 0, 0], ['love china', 0, 0, 0, 0]]

我們修改了multi[0][0],卻把我們的multi[1][0],multi[2][0]也修改了。這不是我們想要的結果。

如果我們這樣寫呢:

multilist = [[0] * 5 for row in range(3)]

multilist[0][0] = 'love china'

print multilist

我們看輸出結果:

[['love china', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

multilist = [[0 for col in range(5)] for row in range(3)]

c 學習筆記6,陣列,多維陣列

初始化陣列 double balance 5 訪問陣列元素 陣列元素可以通過陣列名稱加索引進行訪問。元素的索引是放在方括號內,跟在陣列名稱的後邊。例如 double salary balance 9 上面的語句將把陣列中第 10 個元素的值賦給 salary 變數。下面的例項使用了上述的三個概念,即...

C primer學習筆記 3 6多維陣列

嚴格來說,c 語言中沒有多維陣列,通常所說的多維陣列其實是陣列的陣列 盡量不要當成一維陣列理解,雖然可能儲存結構是如此實現的 多維陣列的宣告語句可以按照由內到外的閱讀順序來理解其實際含義。對於二維陣列來說,常把第乙個維度稱為行,第二個維度稱為列。多維陣列的初始化 允許使用花括號括起來的一組值初始化多...

C 學習筆記 11 多維陣列

多維陣列 多維陣列 如果乙個一維陣列中的每個元素都是同型別同大小的一維陣列,情況會是什麼樣子呢?下圖表示了乙個 m 1 n 1 的二維陣列,二維陣列實質上是對一維陣列的擴充套件,其中的每個元素要用兩個下標來表示,前乙個稱為行下標,後乙個稱為列下標。宣告乙個多維陣列 和一維陣列一樣,宣告的主要作用就是...