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

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

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

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

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) # शैलो कॉपी बनाएं और कॉपी किए गए ऑब्जेक्ट पर अपडेट करें
new_mat[2][0] = 77
new_mat[2][1] = 88
new_mat[2][2] = 99
print('Matrix After Updation: ' + str(my_mat)) # मूल मैट्रिक्स अपडेट हो गया

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)) # मूल मैट्रिक्स अपरिवर्तित
print('New Matrix: ' + str(new_mat_deep)) # मूल मैट्रिक्स अपरिवर्तित

आउटपुट

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# में शैलो कॉपी और डीप कॉपी में क्या अंतर है?

    शैलो कॉपी (Shallow Copy) ऑब्जेक्ट की शैलो कॉपी मुख्य ऑब्जेक्ट को कॉपी करती है, लेकिन इनर ऑब्जेक्ट्स को कॉपी नहीं करती। इनर ऑब्जेक्ट्स मूल ऑब्जेक्ट और उसकी कॉपी के बीच शेयर किए जाते हैं दोनों ऑब्जेक्ट्स स्वतंत्र नहीं होते यदि एक ऑब्जेक्ट में संशोधन किया जाए, तो परिवर्तन दूसरे में भी प्रतिबिंबित होत

  1. - जावा में डीप कॉपी और शैलो कॉपी

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

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

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