Существуют разные способы копирования изменяемых структур данных, таких как списки и словари. Полные копии работают, если есть только неизменяемые элементы, но если у вас есть список, например, внутри списка, вам нужна глубокая копия.
Для иллюстрации:
from copy import deepcopy
l = [1,['a', 'b', 'c'],3,4]
l2 = list(l)
l3 = l.copy()
l4 = deepcopy(l)
# Mutate original list
l[0] = 10 # All of the copies are unaffected by this.
l[1][0] = 'f' # All of the copies except for the deep copy are affected by mutating a mutable item inside the shallow copy of the list.
print(l, l2, l3, l4)
# Result:
# [10, ['f', 'b', 'c'], 3, 4] [1, ['f', 'b', 'c'], 3, 4] [1, ['f', 'b', 'c'], 3, 4] [1, ['a', 'b', 'c'], 3, 4]