python 建立二維陣列和一維陣列

2021-09-25 03:28:21 字數 1042 閱讀 1256

一維陣列:

二維陣列:

寫**的時候需要使用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...