🏠 Home 📚 Chapters
HomeChapters › Chapter 18
CHAPTER 18

Generators

yield keyword, memory-efficient sequences — Python generators

Advertisement

Generator Basics

Generator एक special function है जो yield keyword use करता है। Memory efficient होता है।
python
def count_up(n):
    i = 1
    while i <= n:
        yield i
        i += 1

# next() से एक-एक value
gen = count_up(5)
print(next(gen))   # 1
print(next(gen))   # 2

# Loop में use
for n in count_up(5):
    print(n, end=" ")   # 1 2 3 4 5

# Fibonacci generator
def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a+b

f = fib()
for _ in range(8):
    print(next(f), end=" ")   # 0 1 1 2 3 5 8 13
OUTPUT
1 2 1 2 3 4 5 0 1 1 2 3 5 8 13
Advertisement

Generator Expression

Generator expression comprehension जैसा है लेकिन () brackets में।
python
# List vs Generator memory comparison
import sys

# List - सब memory में
lst = [x**2 for x in range(1000)]
print(f"List size: {sys.getsizeof(lst)} bytes")

# Generator - एक-एक calculate
gen = (x**2 for x in range(1000))
print(f"Generator size: {sys.getsizeof(gen)} bytes")

print(next(gen))   # 0
print(next(gen))   # 1
print(next(gen))   # 4
OUTPUT
List size: 8856 bytes Generator size: 104 bytes

🎯 QUICK QUIZ — Chapter 18

Generator क्या है?
Advertisement
🏠 अगला →