How to Copy Lists in Python?

Estimated read time 2 min read

To copy lists in Python, you can use either the slicing syntax or the copy() method. Here are two common approaches:

  1. Slicing Syntax: You can use the slicing syntax [:] to create a shallow copy of the list.
original_list = [1, 2, 3, 4, 5]
copied_list = original_list[:]

In this approach, original_list[:] creates a new list that contains all the elements from original_list. Assigning this new list to copied_list creates a separate copy of the list.

  1. copy() Method:
import copy

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

In this approach, copy.copy(original_list) creates a new list that is a shallow copy of original_list.

Both approaches create a new list that contains the same elements as the original list. However, they differ in how they create the copy:

  • Slicing creates a copy using the list’s built-in behavior.
  • The copy() method explicitly performs the copy operation using the copy module.

It’s important to note that both methods create a shallow copy. If the original list contains mutable objects (e.g., nested lists, dictionaries), changes to the mutable objects in one list may affect the other list as well. If you need a deep copy (i.e., a copy where changes to the mutable objects do not affect the other list), you can use copy.deepcopy() instead.

Here’s an example illustrating the difference between shallow and deep copy:

import copy

original_list = [1, [2, 3], 4, 5]
shallow_copy = original_list[:]
deep_copy = copy.deepcopy(original_list)

# Modify the first element in the shallow copy
shallow_copy[0] = 10

# Modify the nested list in the original list
original_list[1].append(6)

print("Original List:", original_list)
print("Shallow Copy:", shallow_copy)
print("Deep Copy:", deep_copy)

Output:

Original List: [1, [2, 3, 6], 4, 5]
Shallow Copy: [10, [2, 3, 6], 4, 5]
Deep Copy: [1, [2, 3], 4, 5]

As you can see, modifying the shallow copy affects only the copied list, while modifying the nested list in the original list affects both the original list and the shallow copy. The deep copy, on the other hand, remains unchanged.

You May Also Like

More From Author

+ There are no comments

Add yours

Leave a Reply