अप्रत्याशित सूची उत्परिवर्तन
v = [0,0,0,0,0,0,0,0 जैसी सूची बनाते समय ,0], आप मान सकते हैं कि एक वेरिएबल को एक नई सूची निर्दिष्ट करने से एक अलग संदर्भ बनता है। हालाँकि, निम्नलिखित जैसा कोड अप्रत्याशित व्यवहार प्रदर्शित कर सकता है:
vec = v
vec[5] = 5
vec और v दोनों में अब सूचकांक 5 पर मान 5 है। ऐसा क्यों होता है?
संदर्भ असाइनमेंट
पायथन में, सूचियाँ परिवर्तनशील वस्तुएँ हैं। vec = v निर्दिष्ट करने से सूची की नई प्रतिलिपि नहीं बनती है। इसके बजाय, यह v के लिए एक संदर्भ प्रदान करता है। vec और v दोनों मेमोरी में एक ही अंतर्निहित सूची ऑब्जेक्ट की ओर इशारा करते हैं।
vec या v में किया गया कोई भी संशोधन मूल सूची को प्रभावित करेगा क्योंकि वे एक ही सूची हैं। यही कारण है कि जब vec[5] बदला जाता है, तो v भी बदल जाता है।
Solution
सूची की एक अलग प्रतिलिपि बनाने के लिए, सूची() फ़ंक्शन का उपयोग करें:
vec = list(v)
यह एक नई सूची ऑब्जेक्ट बनाता है जिसमें v से तत्वों की एक प्रति होती है। इसमें किए गए कोई भी परिवर्तन vec, v को प्रभावित नहीं करेगा, और इसके विपरीत भी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3