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

पायथन में एक नए वेरिएबल को एक सूची निर्दिष्ट करने से एक अलग प्रतिलिपि क्यों नहीं बनती है?

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

Why does assigning a list to a new variable in Python not create a separate copy?

अप्रत्याशित सूची उत्परिवर्तन

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