151. Generators for Lazy Evaluation

Here are 10 Python code snippets demonstrating the use of generators for lazy evaluation. Each snippet is separated by a delimiter.


Snippet 1: Generating an infinite sequence of numbers

def infinite_numbers():
    num = 0
    while True:
        yield num
        num += 1

# Usage
gen = infinite_numbers()
for i in range(5):
    print(next(gen))  # Prints numbers 0 to 4

Snippet 2: Lazily reading a large file line by line

def read_large_file(filename):
    with open(filename, 'r') as file:
        for line in file:
            yield line.strip()

# Usage
for line in read_large_file('large_file.txt'):
    print(line)

Snippet 3: Filtering even numbers from a large range


Snippet 4: Generating Fibonacci sequence


Snippet 5: Lazily combining two lists element by element


Snippet 6: Reading a file in chunks


Snippet 7: Lazily transforming data from a list


Snippet 8: Lazy Cartesian product of two lists


Snippet 9: Lazy prime number generator


Snippet 10: Processing a large JSON object lazily


Let me know if you'd like more examples or detailed explanations of any snippet!

Last updated