[Python-Dev] Re: Sets: elt in dict, lst.include - really begs for a PEP

Barry A. Warsaw barry@digicool.com
Wed, 31 Jan 2001 11:50:10 -0500


>>>>> "MZ" == Moshe Zadka <moshez@zadka.site.co.il> writes:

    MZ> Basic response: I *love* the iter(), sq_iter and __iter__
    MZ> parts.  I tremble at seeing the rest.  Why not add a method to
    MZ> dictionaries .iteritems() and do

    | for (k, v) in dict.iteritems():
    | 	pass

    MZ> (dict.iteritems() would return an an iterator to the items)

Moshe, I had exactly the same reaction and exactly the same idea.  I'm
a strong -1 on introducing new syntax for this when new methods can
handle it in a much more readable way (IMO).

Another idea would be to allow the iterator() method to take an
argument:

    for key in dict.iterator()

a.k.a.

    for key in dict.iterator(KEYS)

and also

    for value in dict.iterator(VALUES)
    for key, value in dict.iterator(ITEMS)

One problem is that the constants KEYS, VALUES, and ITEMS would either
have to be defined some place, or you'd just use values like 0, 1, 2,
which is less readable perhaps than just having iteratoritems(),
iteratorkeys(), and iteratorvalues() methods.  Alternative spellings:

    itemsiter(), keysiter(), valsiter()
    itemsiterator(), keysiterator(), valuesiterator()
    iiterator(), kiterator(), viterator()

ad-nauseum-ly y'rs,
-Barry