I have this FibIter generator. I'm trying to create second one using a generator expression.
def FibIter():
yield 0
yield 1
x = 0
y = 1
while True:
result = x + y
x, y = y, result
yield result
fibiter = FibIter()
fibiter_in_range = (x for i, x in enumerate(fibiter) if 100000 < i <= 100020)
Now if I run code below nothing happens.
print(list(fibiter_in_range))
and if I run code below numbers get printed, but the for loop doesn't end.
for x in fibiter_in_range:
print(x)
I thought I can iterate through fibiter_in_range until all elements are used.
What do I not understand about generators? How to elegantly create iterator with fibonacci numbers with n in range 100000-100020?