Python में, असाइनमेंट ऑपरेटर नया ऑब्जेक्ट नहीं बनाता, बल्कि पहले से मौजूद ऑब्जेक्ट को दूसरा नाम देता है। इसे `id()` फंक्शन द्वारा सत्यापित किया जा सकता है।
>>> L1 = [1, 2, 3, 4] >>> L2 = L1 >>> id(L1) 185117137928 >>> id(L2) 185117137928
वास्तव में लिस्ट कॉपी करने के लिए, निम्न विधियों का उपयोग किया जा सकता है।
स्लाइस ऑपरेटर: स्लाइस ऑपरेटर के दो ऑपरेंड्स स्लाइस के प्रारंभ और अंत के इंडेक्स हैं। यदि स्पष्ट रूप से उपयोग नहीं किया जाता, तो दोनों डिफ़ॉल्ट रूप से अनुक्रम के प्रारंभ और अंत पर होते हैं। हम इस सुविधा का लाभ उठा सकते हैं।
>>> L1 = [1, 2, 3, 4] >>> L2 = L1[:] >>> L1 [1, 2, 3, 4] >>> L2 [1, 2, 3, 4] >>> id(L1) 185117025160 >>> id(L2) 185117171592
बिल्ट-इन `list()` मेथड का उपयोग:
>>> L1 = [1, 2, 3, 4] >>> L2 = list(L1) >>> L1 [1, 2, 3, 4] >>> L2 [1, 2, 3, 4] >>> id(L1) 185117295816 >>> id(L2) 185117209352
Python की स्टैंडर्ड लाइब्रेरी का `copy` मॉड्यूल ऑब्जेक्ट्स के शैलो और डीप कॉपी के लिए फंक्शन्स रखता है। जहां डीप कॉपी नेस्टेड कॉपी है, वहीं शैलो कॉपी में, इनर लिस्ट केवल रेफरेंस द्वारा कॉपी होती है।
>>> import copy >>> L1 = [1, 2, 3, 4] >>> L2 = copy.copy(L1) >>> L1 [1, 2, 3, 4] >>> L2 [1, 2, 3, 4] >>> id(L1) 185117025160 >>> id(L2) 185117295880 >>> L3 = copy.deepcopy(L1) >>> L3 [1, 2, 3, 4] >>> id(L3) 185117304328