On Mon, 19 Apr 2010 00:37:11 +0100
C M Caine <cmca...@googlemail.com> wrote:

> That's two new things I've learnt. I didn't realise that for loops
> could be used like that (with more than one... key?).

Consider considering things differently: a for loop always iterates over items 
of a collection you indicate:

l = [1,2,3]
# item is list item             (implicit, it could be written items(l) or 
l.items())
for n in l: print n,
# item is (index,item) pair
for (i,n) in enumerate(l): print (i,n),
print

d = {'a':1, 'b':2, 'c':3}
# item is dict key              (implicit, it could be written d.keys())
for k in d: print k,
# item is dict value
for v in d.values(): print v,
# item is (key,value) pair
for (k,v) in d.items(): print (k,v),
print

(In the last case "items()" is maybe a bit confusing.)

Python lets you construct your own iterators on custom collections to iterate 
in a different way:
class NestedList(list):
        def __iter__(self):
                ll = list.__iter__(self)
                for l in ll:
                        for item in l:
                                yield item
ll = NestedList([[1,2,3], [9,8]])
for n in ll: print n,

Denis
________________________________

vit esse estrany ☣

spir.wikidot.com
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to