Published Jun 4, 2021Updated Oct 13, 2023
Contribute to Docs

Returns a shallow copy of a list.


list2 = list1.copy()

The .copy() method has no parameters.


A Python list can be copied using the = assignment operator:

list1 = [1, 2, 3, 4]
list2 = list1
print(list1) # Output: [1, 2, 3, 4]
print(list2) # Output: [1, 2, 3, 4]

However, if you modify list2, list1 is also modified. This is because list2 is actually pointing to the list1 object.

If you want the original list unchanged when the new list is modified, you can use the .copy() method.

Copying the orders list using .copy() method:

Visit us
Hide code
Hide output
Hide output

Now if you change new_orders, orders stays the same.

Shallow Copy

If you are copying nested lists, shallow copy means if you modify any of the new nested list elements, changes are reflected in both the new and old lists as they point to the same reference. Whereas in deep copy, if you modify any of the new nested list elements, only the new list changes.

All contributors

Looking to contribute?

Learn Python on Codecademy