पायथन में एक मॉड्यूल होता है जिसे कॉपी . कहा जाता है . इस मॉड्यूल का उपयोग करके, हम गहरी प्रतिलिपि और उथली प्रतिलिपि कर सकते हैं। पायथन में असाइनमेंट स्टेटमेंट ऑब्जेक्ट्स की प्रतिलिपि नहीं बनाते हैं। वे लक्ष्य और मुख्य वस्तु के बीच एक बंधन बनाते हैं।
इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग करके आयात करना चाहिए -
import copy
विधि copy.copy(x)
इस विधि का उपयोग वस्तु x की उथली प्रतिलिपि बनाने के लिए किया जाता है। उथली प्रतिलिपि के लिए, किसी ऑब्जेक्ट का संदर्भ किसी अन्य ऑब्जेक्ट पर कॉपी किया जाता है। इसलिए यदि कॉपी किए गए संदर्भ में कोई परिवर्तन होता है, तो यह मुख्य वस्तु की सामग्री को बदल देगा।
विधि copy.deepcopy(x)
इस विधि का उपयोग वस्तु x की एक गहरी प्रतिलिपि बनाने के लिए किया जाता है। डीप कॉपी के लिए, मुख्य ऑब्जेक्ट से डेटा लेकर एक अलग ऑब्जेक्ट बनाया जाता है। इसलिए यदि कॉपी किए गए संदर्भ में कोई परिवर्तन होता है, तो मुख्य वस्तु वही रहेगी।
उदाहरण कोड
import copy my_mat = [[11,22,33],[44,55,66],[11,22,33]] print('Matrix Before Updation: ' + str(my_mat)) new_mat = copy.copy(my_mat) #Make a shallow copy and update on copied object new_mat[2][0] = 77 new_mat[2][1] = 88 new_mat[2][2] = 99 print('Matrix After Updation: ' + str(my_mat)) #Original Matrix Updated my_mat = [[11,22,33],[44,55,66],[11,22,33]] new_mat_deep = copy.deepcopy(new_mat) print('\nMatrix Before Updation: ' + str(my_mat)) new_mat_deep[2][0] = 77 new_mat_deep[2][1] = 88 new_mat_deep[2][2] = 99 print('Matrix After Updation: ' + str(my_mat)) # Original Matrix unchanged print('New Matrix: ' + str(new_mat_deep)) # Original Matrix unchanged
आउटपुट
Matrix Before Updation: [[11, 22, 33], [44, 55, 66], [11, 22, 33]] Matrix After Updation: [[11, 22, 33], [44, 55, 66], [77, 88, 99]] Matrix Before Updation: [[11, 22, 33], [44, 55, 66], [11, 22, 33]] Matrix After Updation: [[11, 22, 33], [44, 55, 66], [11, 22, 33]] New Matrix: [[11, 22, 33], [44, 55, 66], [77, 88, 99]]