काउंटर के साथ लूप बनाने के लिए पायथन में एन्यूमरेट फंक्शन का उपयोग करें

Use Enumerate Function Python Create Loops With Counters



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

सिंटैक्स और मूल उदाहरण

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







के लिये (NSमैं= 0;मैं< 10;मैं++)

{

printf ('%डीएन',मैं);

}

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



के लियेमैंमें श्रेणी(0, 10):

प्रिंट (मैं)

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



0

1

2

3

4

5

6

7

8

9

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





नंबर= ['शून्य', 'एक', 'दो', 'तीन', 'चार', 'पंज']

गणन_संख्या= सूचीबद्ध(नंबर)

के लियेअनुक्रमणिका,मदमेंगणना_संख्या:

प्रिंट (अनुक्रमणिका,मद)

पहला कथन संख्याओं नामक एक नए चर को परिभाषित करता है और इसे एक चलने योग्य (सूची प्रकार) निर्दिष्ट करता है। दूसरा कथन एन्यूमरेट फ़ंक्शन का उपयोग दिखाता है जहां आप इसे अनिवार्य तर्क के रूप में एक चलने योग्य आपूर्ति करते हैं। तीसरा कथन enumerated_numbers चर को एक सूची प्रकार वस्तु में परिवर्तित करता है। डिफ़ॉल्ट रूप से, एन्यूमरेट फ़ंक्शन एक एन्यूमरेट प्रकार की वस्तु उत्पन्न करता है न कि एक पुनरावृत्त प्रकार, इसलिए आपको इसे परिवर्तित करना होगा। ऊपर उल्लिखित कोड नमूना चलाने के बाद, आपको निम्न आउटपुट प्राप्त करना चाहिए:

[(0, 'शून्य'), (1, 'एक'), (2, 'दो'), (3, 'तीन'), (4, 'चार'), (5, 'पांच')]

एन्यूमरेट फ़ंक्शन प्रत्येक तत्व को एक पुनरावृत्त प्रकार में एक गिनती प्रदान करता है और युग्मित मान वाले टुपल्स बनाता है। डिफ़ॉल्ट रूप से, गिनती शून्य से शुरू होती है।



अब जब आपने प्रत्येक तत्व को एक पुनरावृत्त प्रकार में एक संख्या सौंपी है, तो आप नेस्टेड स्टेटमेंट लिखे बिना आसानी से उस पर लूप कर सकते हैं:

नंबर= ['शून्य', 'एक', 'दो', 'तीन', 'चार', 'पंज']

गणन_संख्या= सूचीबद्ध(नंबर)

के लियेअनुक्रमणिका,मदमेंगणना_संख्या:

प्रिंट (अनुक्रमणिका,मद)

ऊपर निर्दिष्ट कोड नमूना निम्नलिखित आउटपुट का उत्पादन करेगा:

0 शून्य

1 एक

2 दो

3 तीन

4 चार

5 पांच

आप एन्यूमरेट फ़ंक्शन इनलाइन का उपयोग करके कोड को छोटा कर सकते हैं, जैसा कि नीचे दिए गए नमूने में दिखाया गया है:

नंबर= ['शून्य', 'एक', 'दो', 'तीन', 'चार', 'पंज']

के लियेअनुक्रमणिका,मदमें सूचीबद्ध(नंबर):

प्रिंट (अनुक्रमणिका,मद)

एक अलग प्रारंभिक सूचकांक के साथ एन्यूमरेट का उपयोग करना

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

नंबर= ['एक', 'दो', 'तीन', 'चार', 'पंज']

के लियेअनुक्रमणिका,मदमें सूचीबद्ध(नंबर,प्रारंभ=1):

प्रिंट (अनुक्रमणिका,मद)

दूसरे कथन में, प्रारंभ बिंदु को बदलने के लिए प्रारंभ = 1 तर्क का उपयोग किया जाता है। ऊपर निर्दिष्ट कोड नमूना चलाने के बाद, आपको निम्न आउटपुट प्राप्त करना चाहिए:

1 एक

2 दो

3 तीन

4 चार

5 पांच

चरणों के साथ अनुक्रमणिका असाइन करना

इस आलेख के पहले खंड में, सी भाषा में लूप के लिए सिंटैक्स दिखाया गया है जहां आप प्रत्येक बाद की गणना या अनुक्रमणिका के बीच चरणों को परिभाषित कर सकते हैं। पायथन में एन्यूमरेट फ़ंक्शन में ऐसा कोई तर्क उपलब्ध नहीं है, इसलिए आप गणनाओं के बीच एक कदम निर्दिष्ट नहीं कर सकते। लूप ब्लॉक के लिए गणना किए गए चरणों को लागू करने के लिए आप वास्तव में अपना तर्क लिख सकते हैं। हालांकि, न्यूनतम कोड लिखकर कस्टम चरणों को लागू करने का एक तरीका है। निम्न उदाहरण ज़िप और श्रेणी फ़ंक्शन का उपयोग करके चरणों के कार्यान्वयन को दर्शाता है:

नंबर= ['शून्य', 'दो', 'चार', 'छः']

के लियेअनुक्रमणिका,मदमें ज़िप(श्रेणी(0, 7, 2),नंबर):

प्रिंट (अनुक्रमणिका,मद)

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

0 शून्य

2 दो

4 चार

6 छ:

निष्कर्ष

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