[Tutor] Being beaten up by a tuple that's an integer thats a tuple that may be an unknown 'thing'.

Robert Berman bermanrl at cfl.rr.com
Tue Nov 3 16:20:06 CET 2009


In [69]: l1=[(0,0)] * 4

In [70]: l1
Out[70]: [(0, 0), (0, 0), (0, 0), (0, 0)]

In [71]: l1[2][0]
Out[71]: 0

In [72]: l1[2][0] = 3
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call
last)

/home/bermanrl/<ipython console> in <module>()

TypeError: 'tuple' object does not support item assignment

First question, is the error referring to the assignment (3) or the
index [2][0]. I think it is the index but if that is the case why does
l1[2][0] produce the value assigned to that location and not the same
error message.

Second question, I do know that l1[2] = 3,1 will work. Does this mean I
must know the value of both items in l1[2] before I change either value.
I guess the correct question is how do I change or set the value of
l1[0][1] when I specifically mean the second item of an element of a 2D
array?

I have read numerous explanations of this problem thanks to Google; but
no real explanation of setting of one element of the pair without
setting the second element of the pair as well.

For whatever glimmers of clarity anyone can offer. I thank you.

Robert

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20091103/eda4bbdb/attachment.htm>


More information about the Tutor mailing list