"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन सूची के माध्यम से पुनरावृत्ति करते समय, आपको वस्तुओं को हटाने से क्यों बचना चाहिए?

पायथन सूची के माध्यम से पुनरावृत्ति करते समय, आपको वस्तुओं को हटाने से क्यों बचना चाहिए?

2024-11-18 को प्रकाशित
ब्राउज़ करें:145

When Iterating Through a Python List, Why Should You Avoid Removing Items?

पायथन सूचियां: पुनरावृति के दौरान आइटम हटाने के नुकसान

आइटमों को एक साथ हटाने के दौरान पायथॉन सूची के माध्यम से पुनरावृत्ति करने से अप्रत्याशित व्यवहार हो सकता है। एक उल्लेखनीय उदाहरण निम्नलिखित है:

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']
for i in letters:
    letters.remove(i)

हैरानी की बात है कि, पत्रों के अंतिम प्रिंट से पता चलता है कि केवल अन्य सभी आइटम हटा दिए गए हैं।

विसंगति का कारण

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

इस अभ्यास से भविष्य में पायथन बिल्ड में अपरिभाषित व्यवहार और संभावित परिवर्तन हो सकते हैं।

&&&]सभी वस्तुओं को हटाने का सही तरीका

किसी सूची से सभी वस्तुओं को सुरक्षित रूप से हटाने के लिए, निम्न में से किसी एक विधि का उपयोग करें:

    डेल अक्षर[:] सभी को हटाने के लिए सूची ऑब्जेक्ट के तत्व और संदर्भ। एक नई खाली सूची बनाने और इसे एक नए वेरिएबल में असाइन करने के लिए। [:] स्लाइस सिंटैक्स का उपयोग करके सूची:
  • कमांड = ["ls", "cd", "rm -rf /"] कमांड में cmd ​​के लिए[:]: यदि सीएमडी में "आरएम": Commands.remove(cmd)
  • वैकल्पिक रूप से, अवांछित वस्तुओं को बाहर करने के लिए फ़िल्टर फ़ंक्शन का उपयोग करें:

कमांड = [यदि नहीं है तो कमांड में cmd ​​के लिए cmd_malicious(cmd)]

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729301595 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3