You can chain multiple generators to create data pipelines. For example:
def generate_numbers(start, end):
for i in range(start, end):
yield i
def filter_even(numbers):
for num in numbers:
if num % 2 == 0:
yield num
def square(numbers):
for num in numbers:
yield num ** 2
# Chaining
numbers = generate_numbers(1, 10)
even_numbers = filter_even(numbers)
squared_numbers = square(even_numbers)
print(list(squared_numbers)) # Output: [4, 16, 36, 64]