पायथन जेनरेटर कैसे बनाएं और उपयोग करें

Payathana Jenaretara Kaise Bana Em Aura Upayoga Karem



डेवलपर के रूप में काम करते समय, आपको अक्सर कई महत्वहीन डेटा मानों के साथ काम करने की आवश्यकता होती है। उन मानों को संग्रहीत करने से मेमोरी का एक बड़ा हिस्सा खर्च होता है, जिससे आपके कोड की दक्षता कम हो जाती है। हालाँकि, पायथन में, आप उस नुकसान से बचने के लिए जनरेटर का उपयोग कर सकते हैं।

जनरेटर के साथ, आप किसी विशेष अनुक्रम के मूल्यों को पूरी तरह से मेमोरी में संग्रहीत किए बिना बड़े पैमाने पर उत्पादित कर सकते हैं। इसके अलावा, 'जनरेटर' फ़ंक्शन एक ऑब्जेक्ट बनाता है जो पुनरावृत्त होने पर मान उत्पन्न करता है। इसलिए, यदि आप पायथन जेनरेटर पर अपना हाथ डालना चाहते हैं, तो यह ट्यूटोरियल आपके लिए है। यहां, हम बताएंगे कि पायथन जनरेटर कैसे बनाएं और उपयोग करें।

पायथन जेनरेटर कैसे बनाएं और उपयोग करें

पायथन जनरेटर का उपयोग डेटा अनुक्रमों पर प्रभावी ढंग से काम करने के लिए किया जाता है, मुख्य रूप से बड़े या लगभग अंतहीन डेटासेट के साथ काम करते समय। पायथन जनरेटर के लाभ हैं:







  1. संक्षिप्त: आप जेनरेटर को संक्षिप्त तरीके से आसानी से परिभाषित कर सकते हैं जिससे कोड पठनीयता में सुधार होता है।
  2. मेमोरी कुशल: वे एक साथ एक ही मान उत्पन्न करते हैं जिससे मेमोरी की कम खपत होती है और दक्षता में सुधार होता है।
  3. अंतर्निहित कार्य: पायथन में, जनरेटर के पास अपने काम को आसान बनाने के लिए नेक्स्ट(), इटर() और यील्ड जैसे पूर्वनिर्धारित फ़ंक्शन होते हैं।
  4. रोकें और फिर से शुरू करने की सुविधा: जटिल एल्गोरिदम पर काम करते समय, आप जनरेटर के संचालन को रोकने और फिर से शुरू करने के लिए 'यील्ड' फ़ंक्शन का उपयोग कर सकते हैं।

आप Python में विभिन्न तरीकों से जनरेटर बना और उपयोग कर सकते हैं। हम विभिन्न उदाहरणों का उपयोग करके इसके कार्यान्वयन को प्रदर्शित करने के लिए इस अनुभाग को आगे विभाजित करेंगे। सबसे पहले, आइए मूल वाक्यविन्यास पर एक नज़र डालें:



डीईएफ़ func_name ( ) :
उपज अभिव्यक्ति

'डिफ़' एक फ़ंक्शन को परिभाषित करता है, और 'यील्ड' का उपयोग 'जनरेटर' फ़ंक्शन बनाने के लिए किया जाता है। हालाँकि, एक अन्य विधि भी केवल एक-पंक्ति अभिव्यक्तियों का उपयोग करके जनरेटर बनाने में मदद करती है।



एक स्ट्रिंग उत्पन्न करने के लिए जेनरेटर फ़ंक्शन

आइए कुछ मूल्य प्राप्त करने के लिए जनरेटर फ़ंक्शन को परिभाषित करें:





डीईएफ़ जनक ( ) :
उपज 'यह एक जनरेटर है'
के लिए कीमत में जनक ( ) :
छपाई ( कीमत )

जब हम 'फॉर' लूप का उपयोग करके इसे दोहराते हैं, तो प्रोग्राम निर्दिष्ट मान उत्पन्न करता है जिसे आप 'प्रिंट' फ़ंक्शन का उपयोग करके प्रिंट कर सकते हैं।



काउंटर बनाने के लिए जेनरेटर फ़ंक्शन

संख्याओं का अनुक्रम उत्पन्न करने के लिए जनरेटर फ़ंक्शन का उदाहरण निम्नलिखित प्रोग्राम है:

डीईएफ़ मेरा_जनरेटर ( एन ) :
विरोध करना = 0
जबकि विरोध करना < एन:
उपज विरोध करना
काउंटर+ = 1
के लिए विरोध करना में मेरा_जनरेटर ( 10 ) :
छपाई ( विरोध करना )

उदाहरण के लिए, यदि इनपुट 10 है, तो इस कोड को संकलित करने पर आपको 0 से 9 तक मान प्राप्त होंगे।

जेनरेटर फ़ंक्शन का उपयोग करते हुए फाइबोनैचि श्रृंखला

आइए अब फाइबोनैचि श्रृंखला का उपयोग करें जो प्रोग्रामिंग में सबसे बुनियादी श्रृंखला है:

डीईएफ़ श्रृंखला_फाइबोनैचि ( आप LIMIT ) :
मैं , जे = 0 , 1
जबकि मैं < सीमा:
उपज मैं
मैं , जे = जे , मैं + जे

= श्रृंखला_फाइबोनैचि ( 6 )

छपाई ( अगला ( ) )
छपाई ( अगला ( ) )
छपाई ( अगला ( ) )
छपाई ( अगला ( ) )
छपाई ( अगला ( ) )
छपाई ( अगला ( ) )

कोड चलाकर हम श्रृंखला इस प्रकार प्राप्त करेंगे:

सबसे पहले, 'ए' नामक एक ऑब्जेक्ट बनाएं और तर्क के रूप में वांछित इनपुट के साथ 'जनरेटर' फ़ंक्शन को कॉल करें।

अगला() कीवर्ड एक मैन्युअल इटरेटर है। हर बार जब हम नेक्स्ट(ए) का उपयोग करते हैं, तो यह 'ए' के एक मान पर पुनरावृत्त होता है। हालाँकि, हम 'ए' के सभी मानों को एक साथ प्रिंट करने के लिए 'फॉर' लूप का उपयोग कर सकते हैं जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

अगले() फ़ंक्शन के बजाय 'for' लूप का उपयोग करना:

डीईएफ़ श्रृंखला_फाइबोनैचि ( आप LIMIT ) :
मैं , जे = 0 , 1
जबकि मैं < सीमा:
उपज मैं
मैं , जे = जे , मैं + जे

= श्रृंखला_फाइबोनैचि ( 6 )
के लिए कीमत में ए :
छपाई ( कीमत )

कोड चलाने का परिणाम भिन्न नहीं होगा क्योंकि यह पिछले प्रोग्राम को लिखने का एक वैकल्पिक तरीका है:

पायथन में जेनरेटर एक्सप्रेशन क्या हैं?

पायथन जेनरेटर अभिव्यक्तियाँ रैखिक अभिव्यक्तियों का उपयोग करके संक्षिप्त रूप से 'जनरेटर' फ़ंक्शन बनाने का एक तरीका है। यहाँ सरल वाक्यविन्यास है:

( अभिव्यक्ति के लिए चर में पुनरावर्तनीय अगर स्थिति )

उदाहरण के लिए, जब 'n' इनपुट मान हो तो 0 से 'n' तक विषम संख्याओं के वर्गों की गणना करने के लिए एक जनरेटर अभिव्यक्ति बनाएं।

विषम_वर्ग = ( एक्स * एक्स के लिए एक्स में श्रेणी ( 10 ) अगर एक्स % 2 != 0 )
के लिए कीमत में विषम_वर्ग:
छपाई ( कीमत )

पिछला कोड निम्नलिखित परिणाम देता है:

निष्कर्ष

यह सब पायथन जेनरेटर बनाने और उपयोग करने के विभिन्न तरीकों के बारे में है। हमने पायथन जेनरेटर एक्सप्रेशन के बारे में सब कुछ समझाया। यदि आप अपने किसी प्रोजेक्ट में जनरेटर का उपयोग करने पर विचार करते हैं तो आपको इन अभिव्यक्तियों का उपयोग करना चाहिए क्योंकि वे हर प्रोग्रामिंग पहलू में अधिक कुशल हैं।