Hello, This is just because you are changing the value of b and in foo there is a reference of b.
while in >>> foo = (1,[2,3,4]) >>> foo[1] += [6] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> foo (1, [2, 3, 4, 6]) >>> it is changing the value in List but after that python has realized that the error . On Fri, Apr 1, 2011 at 6:54 PM, Roshan Mathews <[email protected]> wrote: > On Fri, Apr 1, 2011 at 18:44, Hussain Bohra <[email protected]> > wrote: > > Atleast on changing list, you gets an exception. > > > > On updating dictionary living inside tuple wont throw an exception as > well. > > > I thought the surprising part was that it threw an exception, not that > it updated the list. Even more surprising was that it threw the > exception and updated the list too. > > >>> a, b = 1, [2, 3, 4] > >>> foo = (a, b) > >>> b += [5] > >>> foo > (1, [2, 3, 4, 5]) > >>> > > > > -- > http://about.me/rosh > _______________________________________________ > BangPypers mailing list > [email protected] > http://mail.python.org/mailman/listinfo/bangpypers > -- ---------------------------- Kind regards Ruchir Shukla Phone: +91 9099020687 [email protected]; Ruchir Shukla <http://ruchir-shukla.blogspot.com/> _______________________________________________ BangPypers mailing list [email protected] http://mail.python.org/mailman/listinfo/bangpypers
