Jan Eden wrote:
> Now I'll see if I understand the practical difference between items()
> and iteritems() - the Python tutorial uses iteritems() in such a
> context.

iteritems() is actually better usage but a little harder to explain.

dict.items() creates a new list with the (key, value) pairs:
 >>> d=dict(a=1, b=2, c=3)
 >>> d
{'a': 1, 'c': 3, 'b': 2}
 >>> d.items()
[('a', 1), ('c', 3), ('b', 2)]

dict.iteritems() returns an iterator which will yield the (key, value) pairs 
when its next method is called:
 >>> i = d.iteritems()
 >>> i
<dictionary-itemiterator object at 0x009C9120>
 >>> i.next()
('a', 1)
 >>> i.next()
('c', 3)
 >>> i.next()
('b', 2)

In the context of a for loop, either one will work - the result is the same - 
but iteritems() is more efficient because it doesn't create an intermediate 
list which is then thrown away. Of course for small dicts the difference is 
negligible.

> This is a really friendly and helpful list. Thanks again for all your help.

You're welcome. The Python community is known for friendly hospitality, you'll 
like it here :-)

Kent

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to