Shallow Copy and Deep Copy in Python पायथन में गहरी प्रतिलिपि और उथली प्रतिलिपि

In Python, the concepts of deep copy and shallow copy refer to how data structures, like lists, are duplicated.
पायथन में, गहरी प्रतिलिपि और उथली प्रतिलिपि की अवधारणाएं संदर्भित करती हैं कि कैसे डेटा संरचनाएं, जैसे सूचियां डुप्लिकेट की जाती हैं।

1.) Shallow Copy उथली प्रतिलिपि :-  A shallow copy in Python creates a new object, but instead of creating copies of nested objects, it copies references to those objects. This means that if the original object is modified, changes to nested objects will reflect in both the original and the shallow copy.
पायथन में एक उथली प्रतिलिपि एक नई वस्तु बनाती है, लेकिन नेस्टेड वस्तुओं की प्रतियां बनाने के बजाय, यह उन वस्तुओं के संदर्भों की प्रतिलिपि बनाती है। इसका मतलब यह है कि यदि मूल वस्तु को संशोधित किया जाता है, तो नेस्टेड वस्तुओं में परिवर्तन मूल और उथली प्रतिलिपि दोनों में दिखाई देंगे।

You can create a shallow copy of a list using Slicing, copy method and copy module:-
आप स्लाइसिंग, कॉपी विधि और कॉपी मॉड्यूल का उपयोग करके किसी सूची की एक उथली प्रतिलिपि बना सकते हैं:-

original_list = [1, 2, [3, 4]]
shallow_copied_list = original_list[:]

original_list = [1, 2, [3, 4]]
shallow_copied_list = original_list.copy()

import copy
shallow_copied_list = copy.copy(original_list)

Example उदाहरण:-

import copy

# Original list with a nested list
original_list = [1, 2, [3, 4]]

# Creating a shallow copy
shallow_copied_list = copy.copy(original_list)

# Modifying a nested object in the original list
original_list[2][0] = 'changed'

print("Original List:", original_list)        # Output: [1, 2, ['changed', 4]]
print("Shallow Copied List:", shallow_copied_list)  # Output: [1, 2, ['changed', 4]]

# Modifying the outer object in the shallow copy
shallow_copied_list[1] = 'new_value'

print("After modifying shallow copy:")
print("Original List:", original_list)        # Output: [1, 2, ['changed', 4]]
print("Shallow Copied List:", shallow_copied_list)  # Output: [1, 'new_value', ['changed', 4]]


2.) Deep Copy गहरी प्रतिलिपि:- A deep copy in python creates a new object and recursively copies all objects found within the original. This means that changes to nested objects in the original will not affect the deep copy. 
पायथन में एक गहरी प्रतिलिपि एक नया ऑब्जेक्ट बनाती है और मूल के भीतर पाए गए सभी ऑब्जेक्ट को पुनरावर्ती रूप से कॉपी करती है। इसका मतलब यह है कि मूल में नेस्टेड ऑब्जेक्ट में परिवर्तन से डीप कॉपी पर कोई प्रभाव नहीं पड़ेगा। 

We can create a deep copy using the `copy` module:-
हम 'कॉपी' मॉड्यूल का उपयोग करके एक गहरी प्रतिलिपि बना सकते हैं:-

import copy
deep_copied_list = copy.deepcopy(original_list)

Example उदाहरण:-

import copy

# Original list with a nested list
original_list = [1, 2, [3, 4]]

# Creating a deep copy
deep_copied_list = copy.deepcopy(original_list)

# Modifying a nested object in the original list
original_list[2][0] = 'changed'

print("Original List:", original_list)        # Output: [1, 2, ['changed', 4]]
print("Deep Copied List:", deep_copied_list)  # Output: [1, 2, [3, 4]]

# Modifying the outer object in the deep copy
deep_copied_list[1] = 'new_value'

print("After modifying deep copy:")
print("Original List:", original_list)        # Output: [1, 2, ['changed', 4]]
print("Deep Copied List:", deep_copied_list)  # Output: [1, 'new_value', [3, 4]]

No comments:

Post a Comment