list(l1) will make a shallow copy of l1; that is, all references inside the list l1 will be copied to the new list. Modifications to these nested lists will be visible in the original list since you modify objects with the same reference.