[Python-Dev] collections.Counter add implementation quirk (original) (raw)

Vlastimil Brom vlastimil.brom at gmail.com
Mon Nov 23 13:43:15 EST 2015


2015-11-23 7:21 GMT+01:00 Alexander Walters <tritium-list at sdamon.com>:

collections.Counter.add as a bit of a quirk.

Counters allow for negative numbers. You can subtract from a counter into the negative no problem. However, if you have a counter with a negative value and add it to another counter, and if that value, after addition, would still be negative... that value is not included in the resulting Counter object. This is kind of weird, to the point of thinking I had a bug in other code for several hours until I went and checked how Counters are implemented. Is there any particular reason counters drop negative values when you add them together? I definitely expected them to act like ints do when you add negatives, and had to subclass it to get what I think is the obvious behavior.


Python-Dev mailing list ... Hi, this is probably more appropriate for the general python list rathere then this developers' maillist, however, as I asked a similar question some time ago, I got some detailed explanations for the the current design decissions from the original developer; cf.: https://mail.python.org/pipermail/python-list/2010-March/570618.html

(I didn't check possible changes in Counter since that version (3.1 at that time).)

hth, vbr



More information about the Python-Dev mailing list