खाली जनरेटर आरंभीकरण का पता लगाना
पायथन में, जेनरेटर पुनरावर्तक होते हैं जो एक समय में एक मान उत्पन्न करते हैं। ऐसे में, यह निर्धारित करना एक चुनौती हो सकता है कि जनरेटर शुरू से ही खाली है या नहीं। सूचियों या टुपल्स के विपरीत, जनरेटर में कोई अंतर्निहित लंबाई या isEmpty विधि नहीं होती है।
चुनौती को संबोधित करना
इसे संबोधित करने के लिए, एक सामान्य दृष्टिकोण में एक सहायक फ़ंक्शन का उपयोग करना शामिल है जनरेटर में पहले मान को बिना उपभोग किए देखें। यदि पीक फ़ंक्शन कोई नहीं लौटाता है, तो यह इंगित करता है कि जनरेटर के पास कोई आइटम नहीं है। &&&]
def peek(पुनरावर्तनीय): कोशिश करना: पहला = अगला (पुनरावर्तनीय) स्टॉपइटरेशन को छोड़कर: वापसी कोई नहीं पहले लौटें, itertools.चेन([पहला], पुनरावर्तनीय)
खाली जेनरेटर निर्धारित करने के लिए पीक का उपयोग करनाdef peek(iterable):
try:
first = next(iterable)
except StopIteration:
return None
return first, itertools.chain([first], iterable)
res = peek(mysequence) यदि res कोई नहीं है: # अनुक्रम खाली है. कार्य करना। अन्य: पहला, मायसीक्वेंस = रेस # पहले कुछ करो, शायद? # फिर अनुक्रम पर पुनरावृति करें: मेरे अनुक्रम में तत्व के लिए: # आदिइस उदाहरण में, यदि जनरेटर खाली है, तो पीक फ़ंक्शन कोई नहीं लौटाएगा और यदि स्थिति सत्य होगी। अन्यथा, अन्य ब्लॉक निष्पादित किया जाएगा। इस दृष्टिकोण का उपयोग करके, आप प्रभावी ढंग से पता लगा सकते हैं कि जनरेटर अपनी शुरुआत से ही खाली है या नहीं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3