Tuvas wrote: > Let's say I make a program something like follows: > > x=[] > x.append([1,2,3]) > x.append([4,5,6]) > print x > print x[0] > print x[0][1] > x[0][1]=5 > > Okay, everything works here as expected except the last line. Why won't > this work? Thanks for the help! > Works for me, do you have more informations?
>>> x = list() >>> x.append([1,2,3]) >>> x.append([4,5,6]) >>> print x [[1, 2, 3], [4, 5, 6]] >>> print x[0] [1, 2, 3] >>> print x[0][1] 2 >>> x[0][1] = 5 >>> print x[0][1] 5 >>> Now if you're really using tuples, that last line won't work because tuples are immutable e.g. you can't modify a tuple's elements after the tuple's creation >>> y = list() >>> y.append((1,2,3)) >>> y.append((4,5,6)) >>> print y [(1, 2, 3), (4, 5, 6)] >>> print y[0] (1, 2, 3) >>> print y[0][1] 2 >>> y[0][1] = 5 Traceback (most recent call last): File "<pyshell#16>", line 1, in -toplevel- y[0][1] = 5 TypeError: object does not support item assignment >>> And the reason is explicitly stated (tuples don't support item assignment) -- http://mail.python.org/mailman/listinfo/python-list