So until now, i was under the assumption that if you have for example:
L = [1,2,3]
L2 = L1
L2.append(5)
both L and L2 would be affected by the
Slicing is a shallow copy. A copy created by slicing will contain new references to the old elements of the original list; if the original list contained mutable objects such as more lists, the copy will contain references to those same lists. You can use copy.deepcopy
to try to get around this, or loop through your original list and slice-copy the elements into a new list. Be careful with copy.deepcopy
, though; there's often some depth at which you want to stop making copies and keep the original elements.