Я использую понимание массива для определения интересующего значения для элементов массива самоопределяемого типа.
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
Generator
. Вы можете сделатьg = (value.interest for value in ArrayofMyType if condition)
, чтобы получить объект. Он реализует интерфейс итератора, например, функцииstart
,next
иdone
. 20.02.2017