पायथन iter () फ़ंक्शन दिए गए ऑब्जेक्ट के लिए एक पुनरावृत्ति देता है।
iter()
समारोह एक वस्तु जो एक समय में एक तत्व दोहराया जा सकता है बनाता है।
लूप के लिए लूप के साथ युग्मित होने पर ये ऑब्जेक्ट उपयोगी होते हैं, जबकि लूप।
iter()
फ़ंक्शन का सिंटैक्स है:
iter (वस्तु, संतरी)
iter () पैरामीटर
iter()
समारोह दो पैरामीटर लेता है:
- ऑब्जेक्ट - ऑब्जेक्ट जिसका इटरेटर बनाया जाना है (सेट किया जा सकता है, ट्यूपल, आदि)
- संतरी (वैकल्पिक) - विशेष मूल्य जो किसी अनुक्रम के अंत का प्रतिनिधित्व करने के लिए उपयोग किया जाता है
पुनरावृत्ति मान से ()
iter()
समारोह को देखते हुए वस्तु के लिए एक इटरेटर वस्तु देता है।- यदि उपयोगकर्ता-परिभाषित ऑब्जेक्ट लागू नहीं होता है
__iter__()
, और__next__()
या__getitem()__
,TypeError
अपवाद उठाया जाता है। - प्रहरी पैरामीटर भी प्रदान किया जाता है,
iter()
जब तक प्रहरी वर्ण नहीं मिला है , एक पुनरावृत्ति देता है।
उदाहरण 1: पायथन iter () का कार्य करना
# list of vowels vowels = ('a', 'e', 'i', 'o', 'u') vowels_iter = iter(vowels) print(next(vowels_iter)) # 'a' print(next(vowels_iter)) # 'e' print(next(vowels_iter)) # 'i' print(next(vowels_iter)) # 'o' print(next(vowels_iter)) # 'u'
आउटपुट
aeiou
उदाहरण 2: कस्टम ऑब्जेक्ट्स के लिए iter ()
class PrintNumber: def __init__(self, max): self.max = max def __iter__(self): self.num = 0 return self def __next__(self): if(self.num>= self.max): raise StopIteration self.num += 1 return self.num print_num = PrintNumber(3) print_num_iter = iter(print_num) print(next(print_num_iter)) # 1 print(next(print_num_iter)) # 2 print(next(print_num_iter)) # 3 # raises StopIteration print(next(print_num_iter))
आउटपुट
1 2 3 ट्रेसबैक (सबसे हालिया कॉल अंतिम): फाइल "", लाइन 23, फाइल में "", लाइन 11, __next__ StopIteration में
उदाहरण 3: प्रहरी () प्रहरी पैरामीटर के साथ
class DoubleIt: def __init__(self): self.start = 1 def __iter__(self): return self def __next__(self): self.start *= 2 return self.start __call__ = __next__ my_iter = iter(DoubleIt(), 16) for x in my_iter: print(x)
आउटपुट
२ ४ 8
यहाँ, हमने बिना किसी StopIteration
शर्त के एक कस्टम चलने योग्य वस्तु को लागू किया है ।
हालांकि, हम पुनरावृत्ति को रोकने के iter()
लिए sentinel
पैरामीटर के साथ विधि का उपयोग कर सकते हैं । यदि से लौटाया गया मान __next__()
बराबर है sentinel
, StopIteration
तो उठाया जाएगा, अन्यथा, मान लौटा दिया जाएगा।
अनुशंसित पढ़ना: अजगर Iterators