python创建长度为n的数组_在Python中建立N维数组并赋初值
在Python中,由于不像C++/Java這樣的語言可以方便的用a[i][j]=0的方式,建立二維數組并賦初值,所以需要一個相對巧妙的方法。
可以用列表解析的方式,eg:
>>> mat=[[0 for i in range(5)] for j in range(5)]>>>mat
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
這樣就建立了一個二維5X5的數組并把初值設置為0.
下面給一個建立MXN的二維數組,并把初值設為x的函數:
defGet_MXN_Array_initx(m,n,x):return [[x for i in range(m)] for j in range(n)]
如果要建立三維數組可以用類似的方式,以下是一個函數,建立多維的,每一維長度都可以指定,所有元素初始值為x的數組。
參數:m為整數,表示數組的維度;n為數組,儲存每一維數組的長度
感謝dearchi指出下列代碼中的錯誤,已改正。
原理:在使用低維數組生成高維數組的過程中,確實應當使用deepcopy復制低維數組,不然會導致高維數組中的每個元素實際上都是同一個低維數組,當有一個低維數組被修改,高維數組中的其他低維數組也跟著被修改了,即“牽一發而動全身”。詳見dearchi的評論。
import copy
defGet_Mdimensions_NlengthArray_initValuex(m,n,x):if m!=len(n):print("Error!指定每一維數組的長度時出錯")else:
result=[x for i in range(n[-1])]
dimensions_num=1
while dimensions_num
result=[copy.deepcopy(result) for i in range(n[-1-dimensions_num])]
dimensions_num+=1
return result
eg:我們創建一個2維,3X2,初始值為0的數組,各維度的長度以數組的形式傳入參數n:
>>> Arr=Get_Mdimensions_NlengthArray_initValuex2(2,[3,2],0)>>>Arr
[[0, 0], [0, 0], [0, 0]]
當傳入維度數組的長度與數組維度不匹配時:
>>> Arr=Get_Mdimensions_NlengthArray_initValuex2(2,[3,2,3],0)
Error!指定每一維數組的長度時出錯
總結
以上是生活随笔為你收集整理的python创建长度为n的数组_在Python中建立N维数组并赋初值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.7和2.7_为两个pyt
- 下一篇: 鹰眼系统原理_山东首家露天焚烧鹰眼监控系