Rate my reply
Paddy
paddy3118 at netscape.net
Fri Oct 20 23:21:36 EDT 2006
Hi,
In answering Johns question I had to approach it from a standpoint of
originally not seeing that their could be a difficulty; railing myself
in; then re-reading Johns question and trying even harder to put myself
in his shoes.
What I am interested in is if John and others might just take time out
to critique the replies. I'm interested in what the group think makes a
good comp.lang.python reply: too short, too long; too cryptic, too
simplistic, too polite (is their such a thing), too nasty; too
self-effacing, too self-promoting; too long a sig ;-) , too anonymous
...
Paddy wrote:
> John Salerno wrote:
> > I'm a little confused, but I'm sure this is something trivial. I'm
> > confused about why this works:
> >
> > >>> t = (('hello', 'goodbye'),
> > ('more', 'less'),
> > ('something', 'nothing'),
> > ('good', 'bad'))
> > >>> t
> > (('hello', 'goodbye'), ('more', 'less'), ('something', 'nothing'),
> > ('good', 'bad'))
> > >>> for x in t:
> > print x
> >
> >
> > ('hello', 'goodbye')
> > ('more', 'less')
> > ('something', 'nothing')
> > ('good', 'bad')
> > >>> for x,y in t:
> > print x,y
> >
> >
> > hello goodbye
> > more less
> > something nothing
> > good bad
> > >>>
> >
> > I understand that t returns a single tuple that contains other tuples.
> > Then 'for x in t' returns the nested tuples themselves.
> >
> > But what I don't understand is why you can use 'for x,y in t' when t
> > really only returns one thing. I see that this works, but I can't quite
> > conceptualize how. I thought 'for x,y in t' would only work if t
> > returned a two-tuple, which it doesn't.
> >
>
> Hi John,
>
> Thats the point were you go astray.
> iterating over t *does* produce a 2-tuple that can be unpacked
> immediately.
>
> maybe this will help, (notice that element is always one of the inner
> tuples):
>
> >>> tpl = ((00,01), (10,11), (20,21))
> >>> for element in tpl:
> ... print "tpl provides this when iterated over:", element
> ...
> tpl provides this when iterated over: (0, 1)
> tpl provides this when iterated over: (10, 11)
> tpl provides this when iterated over: (20, 21)
> >>> for element in tpl:
> ... print "tpl provides this when iterated over:", element
> ... sub0, sub1 = element
> ... print "each element unpacks to:", sub0,"and:", sub1
> ...
> tpl provides this when iterated over: (0, 1)
> each element unpacks to: 0 and: 1
> tpl provides this when iterated over: (10, 11)
> each element unpacks to: 10 and: 11
> tpl provides this when iterated over: (20, 21)
> each element unpacks to: 20 and: 21
> >>> for sub0, sub1 in tpl:
> ... print "each element of tuple unpacked immediately to:",
> sub0,"and:", sub1
> ...
> each element of tuple unpacked immediately to: 0 and: 1
> each element of tuple unpacked immediately to: 10 and: 11
> each element of tuple unpacked immediately to: 20 and: 21
> >>>
>
>
> - Paddy.
More information about the Python-list
mailing list