У меня проблемы с пониманием того, как массивы работают на 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' подсписков с' 'Ā' –
для г в диапазоне (2)' -> ваш первый цикл имеется значение 'я = 0 ', полагая 'a [j]' = 0 для всех 'j' ->' b [0] = [0. 0. 0.] ' – asongtoruin
Да, но это тот же адрес. Все подсписные буквы b Наведите указатель на тот же адрес. Итак, в конце значения должны быть последними, которые я пишу в массиве или нет? –