[EMAIL PROTECTED] wrote: > Hi Python experts! Please explain this behavior: >
[] make an empty list. [ [],[],[] ] makes a list of three different empty lists. 3*[[]] makes a list of three references to the same list. Realy, that should explain it all, but perhaps there are enough empty lists here to obscure things. Try this: Here b is a list that contains three references to a. Modify a, and all three references to a show the modification: >>> a = [1,2,3] >>> b = [a,a,a] >>> a.append(4) >>> b [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]] Gary Herron > >>>> nn=3*[[]] >>>> nn >>>> > [[], [], []] > >>>> mm=[[],[],[]] >>>> mm >>>> > [[], [], []] > > Up till now, 'mm' and 'nn' look the same, right? Nope! > > >>>> mm[1].append(17) >>>> mm >>>> > [[], [17], []] > >>>> nn[1].append(17) >>>> nn >>>> > [[17], [17], [17]] > > ??? > > Python 2.5 Win XP > > Thanks! > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list