पायथन इयेटर: पायथन में इटरेटर क्या है और इसका उपयोग कैसे करें?



पायथन पुनरावृत्तियों पर इस ब्लॉग में, हम पायथन में Iterators पर गहन अध्ययन कर रहे हैं और वे कैसे कार्यान्वित किए जाते हैं।

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

Iterators बनाम Iterable

पायथन में एक वस्तु, जिसका उपयोग Iterable ऑब्जेक्ट के रूप में किया जा सकता है, को Iterable कहा जाता है। यह मूल रूप से वस्तु में अनुक्रम का मतलब है पर iterated किया जा सकता है। अधिकांश पायथन संग्रह एक की तरह सूची , , टप्पल , सेट करता है , और भी सीमा एक Iterable के रूप में माना जा सकता है।





अजगर Iterators क्या हैं?

एक पायथन मैं टेटर एक कंटेनर जिसमें मानों की संख्या होती है। एक कंटेनर में मानों को Iterators - विशेष रूप से सूचियों का उपयोग करके ट्रेस किया जा सकता है।

ट्रैवर्सल के अलावा, इटरेटर्स एक कंटेनर में डेटा तत्वों तक पहुंच प्रदान करता है, लेकिन स्वयं प्रदर्शन नहीं करता हैपुनरावृतियानी, उस अवधारणा के साथ या शब्दावली के तुच्छ उपयोग के साथ कुछ महत्वपूर्ण स्वतंत्रता के बिना नहीं। एक Iterator लगभग एक के समान हैडेटाबेस कर्सरव्यवहार में। यहाँ Iterator का एक सरल उदाहरण है ।



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) प्रिंट (अगला (iter_obj))

आउटपुट: Edureka

Iterator किसी भी प्रकार का पायथन है जिसका उपयोग ’लूप के लिए’ के साथ किया जा सकता है।Iterator के रूप में उपयोग की जाने वाली कोई भी वस्तु निम्न विधियों को लागू करना चाहिए।

अजगर में iterators - edureka



1. __ लेखक __ ()

इसे एक Iterator के आरंभ पर कहा जाता है।इसे एक ऐसी वस्तु वापस करनी चाहिए जिसमें अगली या __next__ विधि हो।

2. __next __ ()

Iterator की अगली विधि Iterable का अगला मान देती है।

जब एक लूप का उपयोग 'लूप' के लिए is के साथ किया जाता है, तो अगले () को संक्षेप में कहा जाता है Iterator ऑब्जेक्ट पर। इस विधि को पुनरावृत्ति के अंत को इंगित करने के लिए एक StopIteration का उपयोग करना चाहिए।इन दोनों विधियों को मिलाकर Iterator Protocol कहा जाता है। आइए समझने की कोशिश करें कि लूप के लिए एक उदाहरण के साथ पायथन में एक Iterator के रूप में कैसे काम करता है।

के लिए मैं वस्तु में: प्रिंट (i)

आइए समझते हैं कि लूप Iterator के रूप में कैसे काम करता है।

# उस iterable iter_obj = iter (iterable) # अनंत लूप से एक itter ऑब्जेक्ट बनाएं, जबकि True: कोशिश करें: # अगला आइटम तत्व प्राप्त करें = अगला (iter_obj) # StopIteration को छोड़कर तत्व के साथ कुछ करें: # अगर StopIteration उठाया गया है, तो लूप से विराम लें टूटना

अब जब हम जानते हैं, कैसे पाश के लिए एक Iterator के रूप में काम करता है। आइए हम समझते हैं कि हम पायथन में कस्टम Iterators को कैसे लागू कर सकते हैं।

कस्टम Iterators

अब आइए हम इस पर एक नज़र डालें कि हम पायथन में कस्टम Iterators को कैसे लागू कर सकते हैं। इसे समझने के लिए, हम एक उदाहरण का उपयोग करेंगे। इस उदाहरण में, हम __iter __ () और __next __ () विधियों को लागू करेंगे।

वर्ग MyNumbers: def __iter __ (स्व): self.a = 1 वापसी आत्म def __next __ (स्व): x = self.a self.a + = 1 वापसी x myclass = MyNumbers () myer = iter (मायक्लास) प्रिंट (अगला) myiter)) प्रिंट (अगला (myiter)) प्रिंट (अगला (myiter))

आउटपुट: एक

अब जब हम जानते हैं कि हम कस्टम Iterators को कैसे लागू कर सकते हैं, तो आइए Python में अनंत Iterators पर एक नज़र डालते हैं।

अनंत सूत्रधार

यह हमेशा अनिवार्य नहीं है कि एक Iterator ऑब्जेक्ट में आइटम को समाप्त करना है। अनंत Iterators हो सकते हैं (जो कभी समाप्त नहीं होते हैं)। यहां अनंत पुनरावृत्तियों को प्रदर्शित करने के लिए एक मूल उदाहरण है।

बिल्ट-इन iter ()दो तर्कों के साथ बुलाया जा सकता है जहां पहला तर्क एक वस्तु (फ़ंक्शन) होना चाहिए जिसे कॉल किया जा सकता है और दूसरा प्रहरी है। Iterator इस फ़ंक्शन को तब तक कॉल करता है जब तक कि लौटा मूल्य प्रहरी के बराबर नहीं हो जाता।

इसे समझने के लिए एक उदाहरण लेते हैं

वर्ग MyNumbers: def __iter __ (स्व): self.a = 1 वापसी आत्म def __next __ (स्व): x = self.a self.a + = 1 वापसी x myclass = MyNumbers () myer = iter (मायक्लास) प्रिंट (अगला) myiter)) प्रिंट (अगला (myiter)) प्रिंट (अगला (myiter)) प्रिंट (अगला (myiter)) प्रिंट (अगला (myiter))

आउटपुट: एक



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

अजगर वर्गों और वस्तुओं के उदाहरण हैं

रोक

Iteration को हमेशा के लिए जाने से रोकने के लिए, हम StopIteration स्टेटमेंट का उपयोग करते हैं। इसे हम कुछ उदाहरणों से समझते हैं।

वर्ग MyNumbers: def __iter __ (स्व): self.a = 1 वापसी आत्म def __next __ (स्व): if self.a & ampampamplt = 5: x = self.a self.a + = वापसी x x: StopIteration myclass = MyNumbers () myiter = myer में x के लिए iter (myclass): प्रिंट (x)

आउटपुट: एक



अब जैसे ही स्थिति झूठी है, निष्पादन अन्य ब्लॉक में चला जाएगा और Iteration बंद हो जाएगा। अब आइए पायथन में Iterators के कुछ अन्य उदाहरणों पर एक नज़र डालते हैं।

अजगर Iterator उदाहरण

यहाँ पायथन में Iterators के कुछ और उदाहरण दिए गए हैं।

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) प्रिंट (अगला (iter_obj))

आउटपुट: Edureka

इस उदाहरण में, हम टपल का उपयोग करने योग्य वस्तु के रूप में करते हैं।

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) प्रिंट (अगला (iter_obj))

आउटपुट: Edureka

यहां तक ​​कि हम स्ट्रिंग को अजगर में एक पुनरावृत्त वस्तु के रूप में उपयोग कर सकते हैं।

my_obj = 'Edureka' iter_obj = iter (my_obj) प्रिंट (अगला (iter_obj))

आउटपुट: है

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

यदि आपको यह लेख 'पायथोन इटरेटर्स' पर प्रासंगिक लगा, तो देखें दुनिया भर में फैले 250,000 से अधिक संतुष्ट शिक्षार्थियों के नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी।

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

यदि आपको कोई प्रश्न आता है, तो 'पायथन इटरेटर्स' के टिप्पणी अनुभाग में अपने सभी प्रश्न पूछने के लिए स्वतंत्र महसूस करें। हमारी टीम को जवाब देने में खुशी होगी।