1. 程式人生 > >基於python的二維陣列的建立

基於python的二維陣列的建立

在c++中,陣列的建立就是直接寫入就是num[ ][ ]這種方式,但是python的不同方法之間存在著些許的差異。在python中說是陣列,不如說是二維列表。 首先我想講的是在生成列表中所容易犯的各種錯誤:

1.

array = [0,0,0]
array1 = array*3
print(array1)

在這裡插入圖片描述

2.

array = [0,0,0]
array1 = [array]*3
print(array1)
array1[0][0] = 1
print(array1)

在這裡插入圖片描述 必須要說明的是,這種方式的確可以生成二維陣列,但是除去第一個之外,剩下所有的都是對第一個的引用,對他們其中一個進行修改,就會改掉所有的值,每一行並不具備獨立性,所以他們並不是真正意義上的二維陣列。

3.

要想真正的生成,建議採取下面這一種方法。 list = [[ ]*c for i in range( r )] 上述等式表示生成一個r * c列的陣列 例如:

list1 = [[1]*3 for i in range(4)]
print(list1)
list1[2][1] = 88
print(list1)

在這裡插入圖片描述 上圖可以看到,此刻對數組裡面的元素進行修改的時候,並沒有修改到其他的元素。表明生成了完全意義上的陣列。

特別提醒:

上面已經講到過,python裡面的陣列並不是一種真正的陣列,並不要求每一行的元素個數都是相同的。陣列的每一行都是由單獨的列表組成的,列表與列表之間是相互獨立的,並沒有聯絡。 仍然拿上面的程式碼為例:

list1 = [[1]*3 for i in range(4)]
print(list1)
list1[2][1].append(88)
print(list1)

輸出的結果為: 在這裡插入圖片描述 清楚的可以看到第3行的數的個數變成了4個。