जब एक सरणी से दूसरी सरणी में सभी तत्वों को कॉपी करने की आवश्यकता होती है, तो 'None' तत्वों के साथ एक खाली सरणी बनाई जाती है। तत्वों पर पुनरावृत्ति करने के लिए एक साधारण फॉर लूप का उपयोग किया जाता है, और नई सूची में मान असाइन करने के लिए '=' ऑपरेटर का उपयोग किया जाता है।
उदाहरण
my_list_1 = [34, 56, 78, 90, 11, 23]
my_list_2 = [None] * len(my_list_1)
for i in range(0, len(my_list_1)):
my_list_2[i] = my_list_1[i]
print("मूल सूची है: ")
for i in range(0, len(my_list_1)):
print(my_list_1[i])
print()
print("नई सूची: ")
for i in range(0, len(my_list_2)):
print(my_list_2[i])
आउटपुट
मूल सरणी के तत्व: 34 56 78 90 11 23 नई सरणी के तत्व: 34 56 78 90 11 23
व्याख्या
एक सूची परिभाषित की जाती है।
दूसरी सूची 'None' तत्वों के साथ परिभाषित की जाती है।
सूची पर पुनरावृत्ति की जाती है, और पहली सूची के तत्वों को दूसरी सूची को असाइन किया जाता है।
यह कॉपी की गई सूची है।
इसे कंसोल पर प्रदर्शित किया जाता है।
पायथन में सरणी कॉपी करने के बेहतर तरीके
उपरोक्त विधि शैक्षिक उद्देश्यों के लिए अच्छी है, लेकिन पायथन में अधिक पायथनिक और कुशल तरीके हैं:
1. स्लाइसिंग (सबसे आम)
my_list_2 = my_list_1[:]
2. list() कंस्ट्रक्टर
my_list_2 = list(my_list_1)
3. copy() मेथड (पायथन 3.3+)
my_list_2 = my_list_1.copy()
4. copy मॉड्यूल (डीप कॉपी के लिए)
import copy my_list_2 = copy.copy(my_list_1) # शैलो कॉपी my_list_2 = copy.deepcopy(my_list_1) # डीप कॉपी (नेस्टेड ऑब्जेक्ट्स के लिए)
5. सूची समझ (List Comprehension)
my_list_2 = [x for x in my_list_1]
महत्वपूर्ण: शैलो कॉपी vs डीप कॉपी
शैलो कॉपी: केवल शीर्ष-स्तरीय तत्वों की प्रतिलिपि बनाता है। नेस्टेड ऑब्जेक्ट्स (सूचियों की सूची) अभी भी साझा किए जाते हैं।
डीप कॉपी: सभी नेस्टेड ऑब्जेक्ट्स को पुनरावृत्त रूप से कॉपी करता है। पूरी तरह से स्वतंत्र कॉपी बनाता है।
सरल तत्वों (इंट, स्ट्रिंग) की सूचियों के लिए, सभी विधियाँ समान रूप से काम करती हैं। नेस्टेड परिवर्तनीय ऑब्जेक्ट्स के लिए deepcopy का उपयोग करें।