[Python-Dev] collections.Counter __add__ implementation quirk
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