1.numpy模式
import numpy as np
a=np.zeros((2,2))
print(a)
print(a[1][1])
2.但是一些考试,测试情景,无法使用numpy,那么怎么办呢?
比如我想要建立一个10*10的二维数组
resArr=[]
for i in range(10):
a= [1 for j in range(10)]
resArr.append(a)
print(resArr)
我们会得到这样一个数组
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
值得注意的是:
a[1]=10
print((resArr))
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 10, 1, 1, 1, 1, 1, 1, 1, 1]]
当我们改变a值,resArr也改变了。为什么呢?append相当于引用了这个对象,而非复制。
print(id(resArr[9])) #139865310403080
print(id(a)) #139865310403080
#是相同的id,其实append就相当于引用了a这个list对象。虽然我们很多时候不想他们耦合在一起

Python创建二维数组及其注意事项
本文探讨了在Python中使用numpy创建二维数组的方法,并指出在某些不允许使用numpy的场景下如何建立数组。举例说明了一个10x10的二维数组,并强调了在使用append操作时,会因引用而非复制导致原始数组变化的问题。
2622

被折叠的 条评论
为什么被折叠?



