Я использую понимание массива для определения интересующего значения для элементов массива определенного типа.Использование памяти памяти массива Julia
sum([value.interest for value in ArrayofMyType if condition])
Это само выражение находится в итеративном цикле. Это означает, что каждый цикл, это понимание использует новую память. Кроме того, условие каждый раз может налагать разные длины для результирующего массива, и определение предопределенного массива с фиксированной длиной вне цикла может быть не лучшим образом.
Это дает накладные расходы каждый раз, когда цикл работает, и я не знаю, как я могу сделать это более эффективным и лучше использовать память. Есть ли способ помочь мне в этом? Понимания стилистически удобны, но я думаю, что не самый эффективный в моем случае.
стиль кода является то, что:
for i in 1:MAX_ITER
### Some code above
sum([value.interest for value in ArrayofMyType if condition])
### Some code below
end
Каков механизм этого? Создает ли массив? –
Нет, он создает экземпляр типа «Генератор». Вы можете сделать 'g = (value.interest для значения в ArrayofMyType, если условие)', чтобы получить объект. Он реализует интерфейс итератора, например, функции 'start',' next' и 'done'. – tim
@tim: вы можете добавить этот бит информации в свой ответ! – StefanKarpinski