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 13Advertisement
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