python生成多维数组方法总结(多维创建有问题的情况)

1、一维

list1=[0]*5               #[0,0,0,0,0]
list2=np.arange(5)        #[0,1,2,3,4]

2、二维(注意)

list2=[[0]*3]*2      这种创建是有问题的!!
print(list2)
list2[0][0]=1
print(list2)

 正确的方式:

list3=[[0]*3 for _ in range(2)]
或者
list3=[[0 for j in range(3)] for _ in range(2)]
或者
a=[0]*3
list3=[a.copy for _ in range(2)]

3、多维

用二维的方法创建就行

[[[0 for j in range(3)] for _ in range(2)] for k in range(4)] ......

4、numpy创建数组

list4=np.arange(1,10,2)
list51=np.array([[1,0],[0,1]])
list52=np.array([np.arange(3),np.arange(3)])
list53=np.array((np.arange(3),np.arange(3)))
list6=np.linspace(1,10,10,endpoint=True)    #等差数列
list7=np.zeros((10,10))
list8=np.ones((5,5))
list9=np.empty((3,3))

 

原文地址:https://www.cnblogs.com/51python/p/11517414.html