ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> python-tutor
python-tutor
Re: [Tutor] Being beaten up by a tuple that's an integer thats a tuple that may be an unknown 'thing'.
by Bob Gailer other posts by this author
Nov 3 2009 4:05PM messages near this date
[Tutor] Being beaten up by a tuple that's an integer thats a tuple that may be an unknown 'thing'. | Re: [Tutor] Being beaten up by a tuple that's an integer thats a tuple that may be an unknown 'thing'.
Robert Berman wrote:
> 
>  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.

Tuples are immutable. Replace them with lists and voila. l1=[[0,0]] * 4

But also realize that you are creating a list with 4 copies of one 
object [0,0]. Assigning to one changes all!


-- 
Bob Gailer
Chapel Hill NC
919-636-4239
_______________________________________________
Tutor maillist  -  Tutor@[...].org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
Thread:
Robert Berman
Bob Gailer
Andre Engels
Mark Tolonen
Emile van Sebille
Wayne Werner
Robert Berman

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved