Как сохранить значения генератора прямо в функции Python, чтобы при присвоении функции переменной был вывод?
В фрагменте ниже простой генератор для создания диапазона чисел их двух значений:
def dip(start, stop, part):
step = (stop-start)/part
while True:
yield start
start = start + step
if start >= stop:
break
Чтобы вывести генерируемые значения прописываю :
print(list(dip(0, 10, 4)))
Вывод : [0, 2.5, 5.0, 7.5] Так вот, подскажите как возвратить этот список в самой функции, чтобы то же самое можно было вывести прописав к примеру :
c = dip(0, 10, 4)
print(c)
Например такая конструкция просто не сработает, как я понял потому что на момент окончания цикла While True никаких значений в памяти уже не хранится :
def dip(start, stop, part):
step = (stop-start)/part
while True:
yield start
start = start + step
if start >= stop:
break
return list(start)
c = dip(0, 10, 4)
print(c)
Вывод : <generator object dip at 0x000002C1A5C557E0> Значит надо каким-то образом вывести значения переменной start за пределы цикла While True. Возможно вопрос глупый, занимаюсь всего 5 дней так что пожалуйста не бейте)
Ответы (1 шт):
Автор решения: proffessor17
→ Ссылка
def dip(start, stop, part):
step = (stop - start) / part
result = []
while True:
result.append(start)
start += step
if start >= stop:
break
return result
c = dip(0, 10, 4)
print(c)