On Sun, Sep 2, 2012 at 7:44 PM, Rishabh Dixit <rishabhdixi...@gmail.com> wrote: > > Hi all, > > I have a doubt regarding how the list work in following case- > >>>> ls=[[0]*5]*5 >>>> ls[1][1]+=1 >>>> ls > [[0, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, 0, 0, 0], [0, 1, > 0, 0, 0]] > > > Here, according to me only one value in ls should be incremented but it is > increasing 1 value in all the lists of ls. Why??
When you take the list [[0,0,0,0,0]] and multiply it by 5, you get a list with five references to the same inner list. That's where the confusion is coming from. Then when you change one of them, it changes all five displayed versions, since they're all still the same list. ChrisA -- http://mail.python.org/mailman/listinfo/python-list