पायथन सूचियां: पुनरावृति के दौरान आइटम हटाने के नुकसान
आइटमों को एक साथ हटाने के दौरान पायथॉन सूची के माध्यम से पुनरावृत्ति करने से अप्रत्याशित व्यवहार हो सकता है। एक उल्लेखनीय उदाहरण निम्नलिखित है:
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']
for i in letters:
letters.remove(i)
हैरानी की बात है कि, पत्रों के अंतिम प्रिंट से पता चलता है कि केवल अन्य सभी आइटम हटा दिए गए हैं।
विसंगति का कारण
यह व्यवहार उस तरीके से उत्पन्न होता है जिस तरह से पायथन पुनरावृत्ति के दौरान पुनरावर्तनीय में संशोधनों को संभालता है। दस्तावेज़ में स्पष्ट रूप से कहा गया है कि पुनरावृत्त किए जा रहे अनुक्रम को संशोधित करना आम तौर पर असुरक्षित है, विशेष रूप से सूचियों जैसे परिवर्तनशील प्रकारों के लिए।
इस अभ्यास से भविष्य में पायथन बिल्ड में अपरिभाषित व्यवहार और संभावित परिवर्तन हो सकते हैं।
&&&]सभी वस्तुओं को हटाने का सही तरीका
किसी सूची से सभी वस्तुओं को सुरक्षित रूप से हटाने के लिए, निम्न में से किसी एक विधि का उपयोग करें:कमांड = [यदि नहीं है तो कमांड में cmd के लिए cmd_malicious(cmd)]
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3