Sobes.tech
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