[Python-Dev] PEP 469: Restoring the iterkeys/values/items() methods

Stephen J. Turnbull stephen at xemacs.org
Sat Apr 19 18:30:20 CEST 2014


Guido van Rossum writes:

 > Does everyone involved know that "for x in d.iterkeys()" is
 > equivalent to "for x in d" and works the same in Python 2 and 3? 
[...]

 > This doesn't solve itervalues() and iteritems() but I expect those
 > are less common, and "for x, y in d.iteritems(): <blah>" is
 > rewritten nicely as
 >
 >   for x in d:
 >     y = d[x]
 >    <blah>

I suppose there's no way to get the compiler to both make "for x in d"
work as above, and make "for k, v in d" be equivalent to Python 2's
"for k, v in d.iteritems()"?  It seems totally analogous to getting
both "for x in list" and "for x, y in list_of_couples" to DTRT.  (To
me, anyway.)

You'd still be stuck on itervalues(), but at least you'd have the
option of "for _, v in d" (ie, the usual idiom for a value you're
going to ignore) without creating a list.






More information about the Python-Dev mailing list