[Python-ideas] Fwd: collections.Counter should implement fromkeys

Tim Peters tim.peters at gmail.com
Fri Jun 29 22:51:38 EDT 2018


[
Note to repliers to Abe (and others recently):  replies to Google Groups
posts are broken for now on this list, so be sure to replace

    python-ideas at googlegroups.com

with

    python-ideas at python.org

in your reply.  Else the mailing list (neither Google Groups nor the
python.org archive) won't get it.
]

[Tim]
>> So, e.g., someone will be unpleasantly surprised no matter what

[Abe Dillon]
> Sure, but in Hettinger's own words
<https://www.youtube.com/watch?v=HTLu2DFOdTg&t=24m46s> "whenever you have a
constructor war,
> everyone should get their wish". People that want a counting constructor
> have that,people that want the ability to initialize values don't have
that.

I think the missing bit here is that there weren't any "constructor wars"
for Counter.  In all this time, I don't believe I've heard anyone say they
wanted a Counter.fromkeys() before.  For that matter, I'd bet a dollar that
most Python programmers don't know that dict.fromkeys() exists, despite
that it was added in Python 2.3.

As I recall, the primary motivation for adding dict.fromkeys() was to make
using dicts to mimic sets a little easier, by providing a constructor that
threw away duplicates and didn't really care about the values (so no value
was required, and nobody cared that it defaulted to the _seemingly_ insane
`None` - using `None` values for sets-implemented-as-dicts was a de facto
informal standard at the time).

But one release later (2.4) a set type was added too, so the primary
motivation for fromkeys() went away.

15 years later you're jumping up & down about Counter.fromkeys() not being
there, and that's why nobody much cares ;-)


> ...
> I'm tempted to indulge in the meta argument which you're obviously
> striving to avoid,

And succeeding!  I can't be sucked into it :-)  FWIW, fine by me if
Counter.fromkeys() is added, doing exactly what you want.  Raymond may have
a different judgment about that, though.  I don't believe he reads
python-ideas anymore, so opening an enhancement request on bugs.python.org
is the way to get his attention.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180629/67bba030/attachment.html>


More information about the Python-ideas mailing list