[Python-Dev] Re: Candidate Itertools

David Eppstein eppstein at ics.uci.edu
Thu Jun 24 15:11:50 EDT 2004

In article <20040622035255.GB1891 at panix.com>,
 Aahz <aahz at pythoncraft.com> wrote:

> > Hmm, there seems to be 100% support for returning a dictionary and zero
> > support for my iterable (cnt, elem) ... to feed min(), max(), sorted(),
> > nlargest(), and nsmallest().
> The problem is that it's useful for those operations -- and nothing
> else.  It's narrow functionality, and anyone looking just at itertools
> will find this confusing; it's just not the natural definition for
> something named ``count_elements``, and I suspect it is not possible to
> create a good name for your purpose.  Anyone who understands Python will
> expect ``count_elements`` to return (elem,cnt) or a dict.

I finally found the recent code where I'd used something like this
(for the curious: http://www.ics.uci.edu/~eppstein/numth/egypt/egypt.py)

I wrote it as a function that returns a dict (itemCounts in the above 
source) but what I actually did with the results in one place was to 
sort the (elem,cnt) pairs by elem (not by cnt) and then iterate through 
them in sorted order. In another place I used the dictionary directly 
but it amounted to the same thing.

So, either of Aahz's suggestions would have worked for me but the 
original (cnt,elem) suggestion wouldn't have been right.

David Eppstein                      http://www.ics.uci.edu/~eppstein/
Univ. of California, Irvine, School of Information & Computer Science

More information about the Python-Dev mailing list