जनरेटर
जनरेटर और इटरेटर बनाने में उनके उपयोग को समझें
जनरेटर, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 5 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 5 पाठ शामिल हैं।
जनरेटर का परिचय
जनरेटर Python में एक विशेष प्रकार के इटरेटर होते हैं, जो आपको डेटा पर विलंबित रूप से इटरेट करने देते हैं। सारा डेटा एक साथ लौटाने के बजाय, वे एक-एक आइटम प्रदान करते हैं, जिससे मेमोरी की बचत होती है।
इस पाठ में आप Python में जनरेटर बनाना और उनका उपयोग करना सीखेंगे।

जनरेटर क्या है?
जनरेटर ऐसा फ़ंक्शन है जो yield कीवर्ड का उपयोग करके एक-एक करके मान लौटाता है। जनरेटर की next() विधि का हर आह्वान निष्पादन को उस स्थान से फिर शुरू करता है जहाँ उसने पिछली बार मान लौटाया था।
# Basic generator example
def my_generator():
yield 1
yield 2
yield 3
# Using the generator
gen = my_generator()
print(next(gen)) # Outputs: 1
print(next(gen)) # Outputs: 2
print(next(gen)) # Outputs: 3जनरेटर कैसे काम करते हैं
जनरेटर फ़ंक्शन की स्थिति सुरक्षित रखते हैं, इसलिए वे निष्पादन को ठीक उसी स्थान से फिर शुरू कर सकते हैं जहाँ उन्होंने उसे छोड़ा था। इससे मेमोरी की बचत होती है और वे बड़े डेटासेट के लिए आदर्श बन जाते हैं।
# Example: Generating a range of numbers
def range_generator(start, end):
while start < end:
yield start
start += 1
for number in range_generator(1, 5):
print(number) # Outputs: 1, 2, 3, 4जनरेटर अभिव्यक्तियाँ
जनरेटर अभिव्यक्तियाँ सूची कॉम्प्रिहेंशन के समान होती हैं, लेकिन इनमें वर्ग कोष्ठकों के बजाय साधारण कोष्ठकों का उपयोग किया जाता है। ये सूचियों के बजाय जनरेटर बनाती हैं।
# Generator expression
gen_exp = (x * x for x in range(5))
for value in gen_exp:
print(value) # Outputs: 0, 1, 4, 9, 16जनरेटर और सूचियों की तुलना
जनरेटर सूचियों की तुलना में अधिक मेमोरी-कुशल होते हैं, क्योंकि वे सारा डेटा मेमोरी में संग्रहीत नहीं करते। इसके बजाय, वे आवश्यकता के अनुसार डेटा तुरंत उत्पन्न करते हैं।
# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]
# Generator expression
gen_exp = (x * x for x in range(1000000))
# List comprehension uses more memory
print(type(list_comp)) # Outputs: <class 'list'>
print(type(gen_exp)) # Outputs: <class 'generator'>जनरेटर के उपयोग के मामले
जनरेटर इन कार्यों के लिए आदर्श होते हैं:
- ऐसे बड़े डेटासेट को संसाधित करना जो मेमोरी में समा नहीं सकते।
- अनंत अनुक्रम उत्पन्न करना।
- डेटा का विलंबित मूल्यांकन करना।
अनंत जनरेटर
जनरेटर अनंत अनुक्रम उत्पन्न कर सकते हैं, जैसे संख्याओं का कभी समाप्त न होने वाला अनुक्रम। अनंत निष्पादन को रोकने के लिए लूप को रोकना सुनिश्चित करें।
# Infinite generator example
def infinite_sequence():
num = 0
while True:
yield num
num += 1
# Using the infinite generator
for i in infinite_sequence():
if i > 5:
break
print(i) # Outputs: 0, 1, 2, 3, 4, 5एकाधिक मान देने वाले जनरेटर फ़ंक्शन
जनरेटर फ़ंक्शन में कई yield कथन हो सकते हैं, जिससे आप जटिल अनुक्रम बना सकते हैं:
# Multiple yields in a generator
def multi_yield():
yield "First"
yield "Second"
yield "Third"
for value in multi_yield():
print(value) # Outputs: First, Second, Thirdजनरेटर से जुड़ी सामान्य गलतियाँ
इन गलतियों से बचें:
- जनरेटर फ़ंक्शन में
yieldके बजायreturnका उपयोग करना। - लूप या
next()की सहायता से जनरेटर को संसाधित न करना। - ऐसे छोटे डेटासेट के लिए जनरेटर का उपयोग करना जहाँ सूचियाँ अधिक उपयुक्त होती हैं।
हमने क्या सीखा?
इस पाठ में आपने सीखा:
- जनरेटर क्या होते हैं और Python में कैसे काम करते हैं।
- जनरेटर फ़ंक्शन बनाने के लिए
yieldका उपयोग कैसे करें। - जनरेटर और सूचियों के बीच अंतर।
- जनरेटर के उपयोग के मामले, जैसे अनंत अनुक्रम और बड़े डेटासेट।
बहुत अच्छा! अब अगले विषय पर चलते हैं।

एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “जनरेटर” पाठ निःशुल्क है?
हाँ—“जनरेटर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 5 पाठ शामिल हैं।
“जनरेटर” में मैं क्या सीखूँगा?
जनरेटर और इटरेटर बनाने में उनके उपयोग को समझें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 5 में से 2वाँ पाठ है।
“जनरेटर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- डेकोरेटर
- जनरेटर
- कॉन्टेक्स्ट मैनेजर (with स्टेटमेंट)
- कॉम्प्रिहेंशन (सूची, सेट और डिक्शनरी)
- इटरेटर और इटरेबल