一維陣列:
二維陣列:
寫**的時候需要使用python建立二維陣列:
num_list = [ [0]*5 ]*2
print(num_list)
輸出:[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
看輸出覺得這種方法是對的,結果程式出現了錯誤,經過分析,這種建立二維陣列的方式存在問題
num_list[0][0] = 1
print(num_list)
輸出:[[1, 0, 0, 0, 0], [1, 0, 0, 0, 0]]
當改變num_list[0][0]的時候,num_list[1][0]也改變了
上面建立方式等價於
temp_list = [0]*5
num_list = [temp_list,temp_list]
因此 num_list[0][0] = 1 相當於 temp_list[0] = 1,所以num_list[1][0]也跟著變了
正確的建立二維陣列可以使用以下兩種方法:
num_list = [ [0] * 5 for i in range(2)]
測試:print(num_list)
num_list[0][0] = 1
print(num_list)
輸出:[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[[1, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
或者使用numpy庫
import numpy
num_list = numpy.zeros((2,5))
測試:print(num_list)
print(type(num_list))
num_list[0][0] = 1
print(num_list)
輸出:[[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]]
[[ 1. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]]
Python二維陣列建立
建立方法 1.直接建立 2.列表生成 3.numpy建立 遇到的問題 a 3 print a 輸出為 1,2,3 1,2,3 1,2,3 原因是建立乙個列表,然後複製上個,相當於二維陣列中,引用的是同乙個一位陣列。意思就是 a b 3只是建立了3個指向b的應用,所以一旦b改變,a中的3個列表 也會改...
Python建立二維陣列
因一次筆試中忘記如何用python建立二維陣列,遂記錄下來.成功沒有捷徑,一定要腳踏實地.沒有使用numpy模組,若想使用numpy模組建立二維陣列請移步。一 初始化乙個元素從0 n m的二維陣列 row int input column int input dp i column j for j ...
一維陣列和二維陣列
一維陣列和二維陣列 一維陣列 在程式中可以使用下標變數,即說明這些變數的整體為陣列,陣列的每個變數的資料型別是相同的。當陣列中每個元素都只帶有乙個下標時,稱這樣的陣列為一維陣列。例 int arr 4 這時,我們分析一下 arr arr 1 arr 2 的資料型別 可以看出arr指的是陣列首元素ar...