Code Explanation:
1. Function Definition
def g():
for i in range(3):
yield i
This defines a generator function named g.
Inside, it has a for loop from i = 0 to 2 (because range(3)).
The yield keyword makes this a generator — it will return one value at a time and pause between them.
2. Create Generator Object
gen = g()
This line calls the generator function g() but does not run it immediately.
Instead, it creates a generator object and stores it in gen.
3. First Consumption
list(gen)
This line converts the generator gen to a list, consuming it completely.
The generator yields: 0, 1, 2, then it finishes.
So this returns [0, 1, 2], but the result is not printed or saved, so it is discarded.
4. Second Consumption
print(list(gen))
At this point, the generator gen has already been fully consumed in the previous list(gen) call.
Generators cannot be reused or reset unless explicitly recreated.
So now, list(gen) returns an empty list: [].
Final Output
[]
Download Book - 500 Days Python Coding Challenges with Explanation
.png)

0 Comments:
Post a Comment