Skip to main content

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

Comments

Popular posts from this blog

Filter function of python

filter function:-  Imagine we have a bunch of things, like a list of numbers, a collection of fruits, or any other group of items. Now, let's say we want to pick out only certain items from that group based on a specific condition. This is where the filter function comes in handy. Let's say we have a list of numbers, and we want to filter out only the even numbers. We define a condition-checking function that checks if a number is even. Then, we pass this function and the list of numbers to the filter function. It goes through each number, applies the condition-checking function, and keeps only the numbers that are even. Finally, it gives us a new list containing only the even numbers. def is_even(num):     return num % 2 == 0 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] filtered_numbers = list(filter(is_even, numbers)) print(filtered_numbers) Output [2, 4, 6, 8, 10] We can also utilize lambda expressions to define filtering conditions directly within the filter function. nu...

The Python Interpreter पायथन इंटरप्रेटर

The Python interpreter is a program that executes Python code. It reads and interprets Python scripts or interactive commands, converting them into machine-readable bytecode for the computer to execute.The interpreter is a crucial component for running Python code, facilitating both learning and development processes. Users can interact with the interpreter in two primary modes: पायथन इंटरप्रेटर एक प्रोग्राम है जो पायथन कोड को निष्पादित करता है। यह पायथन स्क्रिप्ट या इंटरैक्टिव कमांड को पढ़ता है और व्याख्या करता है, उन्हें कंप्यूटर द्वारा निष्पादित करने के लिए मशीन-पठनीय बाइटकोड में परिवर्तित करता है। दुभाषिया पायथन कोड चलाने के लिए एक महत्वपूर्ण घटक है, जो सीखने और विकास दोनों प्रक्रियाओं को सुविधाजनक बनाता है। उपयोगकर्ता इंटरप्रेटर के साथ दो प्राथमिक मोड में बातचीत कर सकते हैं:- 1. Interactive Mode:- In this mode we can launch the Python interpreter in our terminal or command prompt without specifying a script.This mode allows us to enter Python commands and see immediate results...

Flow of execution of a python program पाइथन प्रोग्राम के निष्पादन का प्रवाह

Flow of execution represents a general outline of Python program execution. The specific flow can vary based on the program's structure, control flow statements (if, else, for, while), and function calls. निष्पादन का प्रवाह पायथन प्रोग्राम निष्पादन की एक सामान्य रूपरेखा का प्रतिनिधित्व करता है। विशिष्ट प्रवाह प्रोग्राम की संरचना, नियंत्रण प्रवाह विवरण (यदि, अन्यथा, के लिए, जबकि), और फ़ंक्शन कॉल के आधार पर भिन्न हो सकता है। 1.) Start: The program begins execution. 1.) प्रारंभ: प्रोग्राम का निष्पादन प्रारंभ होता है। 2.) Import Modules: If necessary, the program imports external modules or libraries. 2.) मॉड्यूल आयात करें: यदि आवश्यक हो, तो प्रोग्राम बाहरी मॉड्यूल या लाइब्रेरी आयात करता है। 3.) Define Functions: Any functions used in the program are defined. 3.) फंक्शन्स को परिभाषित करें: प्रोग्राम में उपयोग किए गए किसी भी फंक्शन को परिभाषित किया जाता है। 4.) Main Program: The main body of the program starts. 4.) मुख्य प्रोग्राम: प्रोग्राम का मुख्य भाग प्रारंभ होता है। 5.) Initializat...