Функция в объявлении цикла for будет вызываться много раз в Python? - PullRequest
0 голосов
/ 26 ноября 2018

Есть функция и цикл for:

def helper():
    return [1,2,3]

for i in helper():
    print(i)

Мне интересно, будет ли вспомогательная функция вызываться только один раз при инициализации цикла for.Я думаю, что если я вызову функцию и заранее назначу возвращаемый массив переменной, которая будет использоваться в цикле for следующим образом:

def helper():
    return [1,2,3]
temp = helper()
for i in temp:
    print(i)

Это с меньшей временной сложностью?

Спасибо!

1 Ответ

0 голосов
/ 26 ноября 2018

используйте операцию yield:

def helper():
    for i in [1,2,3]:
         yield i

for i in helper():
    print(i)

, в этом случае метод helper() будет возвращать значение i во время каждой итерации в вызывающий цикл for.

...