collections Counter most_common method
roy at panix.com
Sat Dec 14 20:37:15 CET 2013
In article <mailman.4121.1387047279.18130.python-list at python.org>,
Mark Lawrence <breamoreboy at yahoo.co.uk> wrote:
> This method returns a list, the example from The Fine Docs being:-
> >>> Counter('abracadabra').most_common(3)
> [('a', 5), ('r', 2), ('b', 2)]
> With the trend in Python being more and more towards methods returning
> iterators, is there ever likely to be an imost_common method, or has
> this been suggested and rejected, or what? I'm really just curious, but
> if enough people were to express an interest and it hasn't already been
> done, I'd happily raise an enhancement request on the bug tracker.
The reason to return iterators instead of lists is that it's more
efficient if the list is very long. I would imagine the most common use
cases for most_common() are to pass it a number like 3. You typically
want to find the most common, or the three most common, or maybe the 10
most common. It's rare that people want the 5000 most common.
So, while I suppose returning an iterator might be more efficient in
some cases, those cases seem pretty rare.
More information about the Python-list