Chapter 9 Lists

9.3 List Repetition

We have already seen the repetition operator working on strings as well as lists. For example,

With a list, the repetition operator creates copies of the references. Although this may seem simple enough, when a list refers to another list, a subtle problem can arise.

Consider the following extension on the previous example.

newlist is a list of three references to origlist that were created by the repetition operator. The reference diagram is shown below.

Fig. 9.3 Repetition of a nested list.

Fig. 9.3 Repetition of a nested list.

Now, what happens if a value in origlist is modified?

newlist shows the change in three places. This can easily be seen by noting that in the reference diagram, there is only one origlist, so any changes to it appear in all three references from newlist.

Fig. 9.4 Same reference.

Fig. 9.4 Same reference.

Here is the same example in codelens. Step through the code paying particular attention to the result of executing the assignment statement origlist[1] = 99.

Activity: CodeLens 4 (nine3Example1)

Check your understanding

© Copyright 2024 GS Ng.

Next Section - 9.4 Lists and Loops