In the list examples of the above Section 10.2 we have given the example:
>>> L3 = L1[:]
and shown that L3 and L1 are
not the same in memory
>>> L3 is L1
False
This is due to the fact that slicing a list creates a copy of a
list and therefore L3 is only a copy of
L1 but not the same object in memory.
Let's look at a second example with a nested list structure:
>>> L1 = [1, [2, 3], 4]
>>> L1
[1, [2, 3], 4]
>>> L2 = L1[:]
>>> L1 is L2
False
>>> L1[1] is L2[1]
True
Figure 10.5 illustrates what happens. In
fact slicing creates only a shallow copy of compound objects by
creating a new compound object and populating the new object with
references to the members of the old list.