我有理解数组如何在Python中工作的问题。了解Python数组
我写这篇简短的演示代码:
from numpy import zeros
a = zeros((3), 'd')
b = zeros((2,3), 'd')
for i in range(2):
for j in range(3):
a[j] = i*j
b[i] = a
print "A: " + str(a) + "\n"
print "B: " + str(b)
的这个输出是:
A: [ 0. 1. 2.]
B: [[ 0. 0. 0.] [ 0. 1. 2.]]
因此,这里是我的问题。为什么不这样做的输出:
A: [ 0. 1. 2.]
B: [[ 0. 1. 2.] [ 0. 1. 2.]]
因为我在做同样的a
和变化的数组的地址并没有改变。
,因为你在范围B'与'了'' –
改变子列表对所有i'引用(2)' - >你的第一个循环特征值'I = 0',设置对于所有的'j' - >'b [0] = [0],a [j]'= 0。 0.0]' – asongtoruin
是的,但它是相同的地址。 b的所有子列表指向相同的地址。所以最后值应该是最后我写在数组或不是? –