[Python-3000] Default dict iterator should have been iteritems()

Noam Raphael noamraph at gmail.com
Tue Sep 4 13:16:07 CEST 2007


On 9/4/07, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Noam Raphael wrote:
> > The default dict iterator should in principle be iteritems(), and not
> > iterkeys().
>
> This was discussed at length back when "in" support was
> added to dicts. There were reasons for choosing to do it
> the way it's done, and I don't think it's likely to be
> changed.
>
Just out of curiousity - do you remember these reasons? I just have
the feeling that back then, iterations were less common, since you
couldn't iterate over dicts without creating new lists, and you didn't
have list comprehensions and generators. You couldn't write an
expression such as
  dict((x, y) for y, x in d)
to quickly get the inverse permutation, so the relative ugliness of
  dict((x, y) for y, x in d.items())
was not considered.

I don't think that it's likely to be changed too.

Noam


More information about the Python-3000 mailing list