PythonでArraysがどのように機能するかを理解する上で問題があります。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
に変更を加えて、配列のアドレスが変更されていないので。
あなたが範囲内のiについてA' –
''とサブリストB'すべての 'の参照を変更したため(2)' - >あなたの最初のループは値 '私は= 0 '、設定が特徴全ての 'j ' - >' b [0] = [0。 0. 0.] ' – asongtoruin
はい、それは同じアドレスです。 bのすべてのサブリスト同じアドレスを指します。最終的に値は最後に配列に書き込まれるかどうかです。 –