+ 4

[Solved] effect of .append() method on a list in a for loop.

Hello dear friends, can you please explain the output of "b" in this code? I thought "b" and "c" should look like the same but they're not! This is the code: a = list() b = dict() c = dict() for n in range(3): a.append(n) b[n] = a c[n] = list(a) print(b) # {0 : [0,1,2], 1 : [0,1,2], 2 : [0,1,2]} print(c) # {0 : [0], 1 : [0,1], 2 : [0,1,2]} Thank you for your time guys. 🙏

15th Apr 2022, 5:47 PM
Siavash Kardar Tehran
Siavash Kardar Tehran - avatar
1 Respuesta
+ 4
list(a) creates a new object. So in your loop you add the same object (which itself gets modified in each iteration) three times to b, but three different objects to c.
15th Apr 2022, 5:51 PM
Simon Sauter
Simon Sauter - avatar