Generator expressions का परिचय

Python टूलबॉक्स

Hugo Bowne-Anderson

Data Scientist at DataCamp

Generator expressions

  • लिस्ट कॉम्प्रिहेंशन याद करें
[2 * num for num in range(10)]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
  • [ ] की जगह ( ) उपयोग करें
(2 * num for num in range(10))
<generator object <genexpr> at 0x1046bf888>
Python टूलबॉक्स

List comprehensions बनाम generators

  • लिस्ट कॉम्प्रिहेंशन - एक list लौटाता है
  • जेनरेटर - एक generator object लौटाता है
  • दोनों पर iterate कर सकते हैं
Python टूलबॉक्स

Generators से मान प्रिंट करना (1)

result = (num for num in range(6))

for num in result: print(num)
0
1
2
3
4
5
result = (num for num in range(6))

print(list(result))
[0, 1, 2, 3, 4, 5]
Python टूलबॉक्स

Generators से मान प्रिंट करना (2)

result = (num for num in range(6))
  • Lazy evaluation
print(next(result))
0
print(next(result))
1
print(next(result))
2
print(next(result))
3
print(next(result))
4
Python टूलबॉक्स

Generators बनाम list comprehensions

Python टूलबॉक्स

Generators बनाम list comprehensions

Python टूलबॉक्स

Generators बनाम list comprehensions

Python टूलबॉक्स

Generator expressions में conditionals

even_nums = (num for num in range(10) if num % 2 == 0)

print(list(even_nums))
[0, 2, 4, 6, 8]
Python टूलबॉक्स

Generator functions

  • कॉल होने पर generator objects बनते हैं
  • सामान्य function की तरह परिभाषित - def
  • एक मान लौटाने की जगह मानों का sequence देता है
  • yield कीवर्ड से मान बनाता है
Python टूलबॉक्स

एक generator function बनाएँ

  • sequence.py
def num_sequence(n):
    """Generate values from 0 to n."""
    i = 0
    while i < n:
        yield i
        i += 1
Python टूलबॉक्स

Generator function का उपयोग करें

result = num_sequence(5)

print(type(result))
<class 'generator'>
for item in result:
    print(item)
0
1
2
3
4
Python टूलबॉक्स

अभ्यास करते हैं!

Python टूलबॉक्स

Preparing Video For Download...