A Comprehensive Guide to Copying Arrays in Python
A Comprehensive Guide to Copying Arrays in Python
When working with arrays (or lists) in Python, it is essential to understand how to copy them properly. This knowledge ensures that changes made to the copied array do not affect the original array.
Key Concepts
- Shallow Copy vs. Deep Copy:
- Shallow Copy: Creates a new object but inserts references to the objects found in the original.
- Deep Copy: Creates a new object and recursively copies all objects found in the original.
Methods to Copy Arrays
1. Using the copy()
Method
The copy()
method creates a shallow copy of the list.
original_list = [1, 2, 3]
copied_list = original_list.copy()
copied_list[0] = 100
print(original_list) # Output: [1, 2, 3]
print(copied_list) # Output: [100, 2, 3]
2. Using List Slicing
You can create a copy by slicing the entire list.
original_list = [1, 2, 3]
copied_list = original_list[:]
copied_list[1] = 200
print(original_list) # Output: [1, 2, 3]
print(copied_list) # Output: [1, 200, 3]
3. Using the list()
Constructor
The list()
constructor can also be used to create a new list.
original_list = [1, 2, 3]
copied_list = list(original_list)
copied_list[2] = 300
print(original_list) # Output: [1, 2, 3]
print(copied_list) # Output: [1, 2, 300]
4. Using the copy
Module for Deep Copy
For deep copying, use the copy
module's deepcopy()
function.
import copy
original_list = [[1, 2, 3], [4, 5, 6]]
copied_list = copy.deepcopy(original_list)
copied_list[0][0] = 100
print(original_list) # Output: [[1, 2, 3], [4, 5, 6]]
print(copied_list) # Output: [[100, 2, 3], [4, 5, 6]]
Conclusion
Understanding how to copy arrays in Python is crucial for effective data manipulation. Use the appropriate method based on whether you need a shallow copy or a deep copy to avoid unintentional changes to your original data.