Junior
What syntax is used to create generators in Python?
sobes.tech AI
Answer from AI
In Python, generators are created using the syntax with the keyword yield inside a function.
# Simple generator
def simple_generator():
yield 1
yield 2
yield 3
# Using the generator
gen = simple_generator()
print(next(gen)) # Outputs 1
print(next(gen)) # Outputs 2
print(next(gen)) # Outputs 3
# print(next(gen)) # Raises StopIteration
# Generator expression (list comprehension-like syntax)
gen_expr = (i * 2 for i in range(5))
print(list(gen_expr)) # Outputs [0, 2, 4, 6, 8]
Table comparing a generator with a regular function returning a list:
| Feature | Generator (with yield) |
Regular function (returning a list) |
|---|---|---|
| Return value | Generator object (iterator) | List |
| Memory | Lazy evaluation (on demand) | All elements are created immediately |
| State | Preserves state between calls | Each execution starts from zero |
| Iteration | Iterates once | Can be iterated multiple times |