[Python-Dev] re: Using lists as sets (original) (raw)

Jeremy Hylton jeremy@cnri.reston.va.us
Mon, 20 Mar 2000 12:28:28 -0500 (EST)


"GVW" == gvwilson <gvwilson@nevex.com> writes:

GVW> On a semi-related note, can someone explain why programs are GVW> not allowed to iterate directly through the elements of a GVW> dictionary:

GVW> for (key, value) in dict: ...body...

Pythonic design rules #2: Explicit is better than implicit.

There are at least three "natural" ways to interpret "for ... in dict:" In addition to the version that strikes you as most natural, some people also imagine that a for loop should iterate over the keys or the values. Instead of guessing, Python provides explicit methods for each possibility: items, keys, values.

Yet another possibility, implemented in early versions of JPython and later removed, was to treat a dictionary exactly like a list: Call getitem(0), then 1, ..., until a KeyError was raised. In other words, a dictionary could behave like a list provided that it had integer keys.

Jeremy