Python Shallow Copy and Deep Copy
In this article, you’ll learn about shallow copy and deep copy in Python with the help of examples.
Table of Contents
- Copy an Object in Python
- Copy Module
- Shallow Copy
- Deep Copy
Copy an Object in Python:
Python, we used the operator = to make a copy of the item. You might think this creates something new; This does not mean that it creates a new trend in the original reference materials.
Let's take an example to make old_list calls and references to the use of new items_list = the employer.
Example 1: Copy number = Operator
old_list = [[1, 2, 3], [4, 5, 6], [7, 8, 'a']]
new_list = old_list
new_list[2][2] = 9
print('Old List:', old_list)
print('ID of Old List:', id(old_list))
print('New List:', new_list)
print('ID of New List:', id(new_list))
When we implement the old program, productivity will be:
Old List: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
An ID of Old List: 140673303268168
New List: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
An ID of New List: 140673303268168
As you can see the normal resources and old_list variables new_list is the same identifier 140673303268168.
Therefore, if you want to have any new_list or old_list, any changes are seen.
Of course, in some cases, you may want to change the original value without the change only if it can change the cost of a new smartphone or the new one. In Python, there are two ways to make a copy:
1. Shallow Copy
2. Deep Copy
Make a copy of this document, and use copy copies.
Copy Module:
We use a Python copy of the surgeon and deeper work. Please, make a copy of the list of enclosures that contain x. For example:
import copy
copy.copy(x)
copy.deepcopy(x)
Shallow Copy:
A copy of the surface creates a new skin store in the original reference part.
Therefore, the above copy will not create duplicate items, instead of the single copy of the referenced objects. This means it is not the way to restore a copy or copy a substance.
Example 2: Create a Copy Using Shallow Copy:
import copy
old_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = copy.copy(old_list)
print("Old list:", old_list)
print("New list:", new_list)
When we implement the program, productivity will be:
Old list: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
New list: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
At the top of the list we have below, a copy of the simplified use of () the copy method.
This means you will have to do some new things with similar things. To check this, print and new_list old_list.
Example 3: Adding [4, 4, 4] to old_list, Using Shallow Copy:
import copy
old_list = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
new_list = copy.copy(old_list)
old_list.append([4, 4, 4])
print("Old list:", old_list)
print("New list:", new_list)
When we implement the program, it will be:
Old list: [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4]]
New list: [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
The first program we've made in the old words is new_list contains the references of substances originally placed old_list. Next, we add a new list [4, 4, 4] for older people. This new list will be published on a new list.
However, if you change one of the old_list subtitles, the change looks like new_list.
Example 4: Adding a new Nested object using Shallow Copy:
import copy
old_list = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
new_list = copy.copy(old_list)
old_list[1][1] = 'AA'
print("Old list:", old_list)
print("New list:", new_list)
When we implement the program, it will be:
Old list: [[1, 1, 1], [2, 'AA', 2], [3, 3, 3]]
New list: [[1, 1, 1], [2, 'AA', 2], [3, 3, 3]]
Previous program has changed old_list ie old_list [1] [1] 'AA'. The old_list of the new_list in the series [1] [1] has been changed. This is because both share a list of cross-referenced elements.
Deep Copy:
A copy of the creation of a new product that includes copies of the repetitive copies in the first section.
Let's continue with Example 2. However, we do a copy using deeper () fonts in a module. A copy of the creation of a free copy of the original item and all items closed.
Example 5: Copying a List Using Deep copy
import copy
old_list = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
new_list = copy.deepcopy(old_list)
print("Old list:", old_list)
print("New list:", new_list)
When we implement the program, it will be:
Old list: [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
New list: [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
In the program, we use deep () to create a copy that has the same image.
However, if any changes are made to old_list original items, you will see a change that has not been made for a newer version.
Example 6: Adding a new Nested Object in the list Using Deep Copy
import copy
old_list = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
new_list = copy.deepcopy(old_list)
old_list[1][0] = 'BB'
print("Old list:", old_list)
print("New list:", new_list)
When we implement the program, it will be:
Old list: [[1, 1, 1], ['BB', 2, 2], [3, 3, 3]]
New list: [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
In the first program, when we set the old_list value, we can only see that old_list is changed. This means both new_list old_list is free. This is due to the fact that the oldest recyclables, which are essentially the cosmetic products, are made.
And indeed, Iam just always astounded concerning the remarkable things served by you. Some four facts on this page are undeniably the most effective I have had.
ReplyDeleteBest Dotnet Fees in Chennai
Best Matlab Fees in Chennai
Best Embedded Fees in Chennai
Best SAS Fees in Chennai
Best Powerbi Fees in Chennai
Best R Programming Fees in Chennai
Best Javascript Fees in Chennai
Best Oracle DBA Fees in Chennai
Best RPA Fees in Chennai
Best UIpath Fees in Chennai
And indeed, Iam just always astounded concerning the remarkable things served by you. Some four facts on this page are undeniably the most effective I have had.
ReplyDeleteDotnet Training in Chennai
Matlab Training in Chennai
Embedded Training in Chennai
SAS Training in Chennai
Powerbi Training in Chennai
R Programming Training in Chennai
Javascript Training in Chennai
Oracle DBA Training in Chennai
Hey amigos, it is incredible composed piece completely characterized, proceed with the great work continually.
ReplyDeleteAI course malaysia
Learn the full knowledge of Python programming by registering for an AI Patasala Advanced Python Training in Hyderabad.
ReplyDeleteOnline Python Course in Hyderabad
Acquire comprehensive expertise in Python programming by enrolling in the Advanced Python Training at AchieversIT in Marathahalli.
ReplyDeletepython training in marathahalli
python training in marathahalli