Использование Python3.5.3 в Spyder 3.1.3 на Raspbian на Raspberry Pi.Добавление двух numpy-массивов к списку с именем list0 хорошо работает с выделенными numy-массивами 'a', например:
import numpy as np
list0 = []
a = np.array([[1,2,3],[2,3,4]])
list0.append(a)
a = np.array([[11,12,13],[12,13,14]])
list0.append(a)
print("list0 =",list0)
работает хорошо, давая в качестве вывода (немного лучше отформатированный для поста):
list0 = [ array([[ 1, 2, 3], [ 2, 3, 4]]),
array([[11, 12, 13], [12, 13, 14]]) ]
Заменив присвоение на использование цикла, происходят странные вещи:
import numpy as np
a = np.empty((3), int)
list0 = []
for idx in range(4):
for i in range(3):
a[i] = idx*10 + i
print("idx =",idx,"; a =",a)
list0.append(a)
print("list0 =",list0)
Вторая строка сообщает Python форму используемого массива (в моем первоначальном случае это триразмерный массив).Для проверки сгенерированные массивы с именем 'a' распечатываются.При добавлении вновь заполненных массивов 'a' к 'list0' наконец-то в четыре раза отображается последняя строка.
idx = 0 ; a = [ 0 1 2]
idx = 1 ; a = [10 11 12]
idx = 2 ; a = [20 21 22]
idx = 3 ; a = [30 31 32]
list0 = [ array([30, 31, 32]), array([30, 31, 32]),
array([30, 31, 32]), array([30, 31, 32]) ]
Я полагаю, что list0 просто содержит для раз указатель на массив 'a', который существует тольков одном экземпляре / диапазоне памяти.
Итак: Как я могу физически добавить (скопировать?) каждый из различных массивов 'a' в список?Это ошибка Python или это просто мое недопонимание чего-то?Конечно, я должен думать более питонским; в)
Спасибо за помощь, Питер