Эффективно инициализировать дек ⇐ Python
-
Anonymous
Эффективно инициализировать дек
Я использую deque для хранения данных, которые будут обработаны. Обработка начинается только тогда, когда дек заполнен, поэтому на первом этапе я заполняю свой буфер следующим образом:
из очереди импорта коллекций импортировать numpy как np my_deque = deque (maxlen = 10) тусклый = (20, 20) my_deque.extend([np.ones(dims)] * 10) Однако, когда я делаю это и изменяю один из элементов my_deque, все элементы my_deque изменяются.
Одной альтернативой, позволяющей избежать этой проблемы, является инициализация моего deque следующим образом
для i в диапазоне (10): my_deque.append(np.ones(dims)) Есть ли более элегантный способ добиться этого?
Изменить. Одним из примеров изменений, создающих проблему, является следующее
my_deque[7][2, :] = 0 После этой строки кода третья строка каждого элемента my_deque представляет собой строку нулей, а не только строку с индексом 7
Я использую deque для хранения данных, которые будут обработаны. Обработка начинается только тогда, когда дек заполнен, поэтому на первом этапе я заполняю свой буфер следующим образом:
из очереди импорта коллекций импортировать numpy как np my_deque = deque (maxlen = 10) тусклый = (20, 20) my_deque.extend([np.ones(dims)] * 10) Однако, когда я делаю это и изменяю один из элементов my_deque, все элементы my_deque изменяются.
Одной альтернативой, позволяющей избежать этой проблемы, является инициализация моего deque следующим образом
для i в диапазоне (10): my_deque.append(np.ones(dims)) Есть ли более элегантный способ добиться этого?
Изменить. Одним из примеров изменений, создающих проблему, является следующее
my_deque[7][2, :] = 0 После этой строки кода третья строка каждого элемента my_deque представляет собой строку нулей, а не только строку с индексом 7