Как сохранить значения генератора прямо в функции 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)
→ Ссылка