我有理解數組如何在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的所有子列表指向相同的地址。所以最後值應該是最後我寫在數組或不是? –