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

Alexander Walters tritium-list at sdamon.com
Mon Nov 23 01:21:43 EST 2015


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.



More information about the Python-Dev mailing list