Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन शालो और डीप कॉपी ऑपरेशन

पायथन में एक मॉड्यूल होता है जिसे कॉपी . कहा जाता है . इस मॉड्यूल का उपयोग करके, हम गहरी प्रतिलिपि और उथली प्रतिलिपि कर सकते हैं। पायथन में असाइनमेंट स्टेटमेंट ऑब्जेक्ट्स की प्रतिलिपि नहीं बनाते हैं। वे लक्ष्य और मुख्य वस्तु के बीच एक बंधन बनाते हैं।

इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग करके आयात करना चाहिए -

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]]

  1. शैलो कॉपी क्या है और यह C# में डीप कॉपी से कैसे अलग है?

    उथली कॉपी - किसी वस्तु की उथली प्रतिलिपि मुख्य वस्तु की प्रतिलिपि बनाती है, लेकिन आंतरिक वस्तुओं की प्रतिलिपि नहीं बनाती है। आंतरिक वस्तुओं को मूल वस्तु और उसकी प्रति के बीच साझा किया जाता है। उथली प्रतिलिपि के साथ समस्या यह है कि दो वस्तुएं स्वतंत्र नहीं हैं। यदि आप एक वस्तु को संशोधित करते हैं,

  1. जावा में डीप कॉपी और उथली कॉपी

    डीप कॉपी और उथली कॉपी दोनों अलग-अलग तरीकों से दिए गए ऑब्जेक्ट की कॉपी बनाने का संदर्भ देते हैं - उथली कॉपी यह मूल रूप से ऑब्जेक्ट का एक नया उदाहरण बनाता है और मूल डेटा सेट से सभी डेटा को नए बनाए गए इंस्टेंस में कॉपी करता है। इसका मतलब है कि नव निर्मित उदाहरण को विशेष रूप से मूल वस्तु में डालना होगा

  1. पायथन और टिंकर का उपयोग करके क्लिपबोर्ड से कॉपी करें

    क्लिपबोर्ड से कॉपी करने के लिए, हम clipboard_get() . का उपयोग कर सकते हैं टिंकर की विधि। आइए एक उदाहरण लें और देखें कि क्लिपबोर्ड से डेटा कैसे प्राप्त करें और इसे टिंकर विंडो पर प्रदर्शित करें। कदम - टिंकर लाइब्रेरी इंपोर्ट करें और टिंकर फ्रेम का इंस्टेंस बनाएं। ज्यामिति . का उपयोग करके फ़्रेम