[Tutor] Append to list
Alan Gauld
alan.gauld at yahoo.co.uk
Wed May 9 19:05:05 EDT 2018
On 9 May 2018, at 23:57, Rick Jaramillo <rck.learn at gmail.com> wrote:
>
>Hello,
>I’m having trouble understanding the following behavior and would greatly appreciate any insight.
>l = [1,2,3,4]
>b=[]
>for i in range(l):
> print l
> b.append(l)
> l.pop(0)
>print b
>OUTPUT
>[1,2,3,4]
>[2,3,4]
>[3,4]
>[4]
>[[],[],[],[]]
>My confusions is the output for b. I don’t understand why it’s empty. I’m expecting for b to equal [[1,2,3,4], [2,3,4], [3,4], [4]].
You append l each time. The same l, not a copy of its current state. You also modify l each time. But there is only one list object. It is just being referenced from several places. So all of the references reflect your changes.
Alan g
More information about the Tutor
mailing list