Actually, they are definitely different as in-place mutation versus returning a new Counter. But in some arithmetic way they look mostly the same. On Tue, Oct 30, 2018, 7:19 PM David Mertz <mertz@gnosis.cx wrote:
Counter doesn't QUITE do the same thing as this `mdict`. But it's pretty close.
I think if .__add__() became a synonym for .update() that wouldn't break anything that currently works. But I'm probably wrong, and missing a case in my quick thought:
from collections import Counter c = Counter(a=[2], b='a') c.update(c) c Counter({'a': [2, 2], 'b': 'aa'}) c2 = Counter(a=1, b=2) c2 + c2 Counter({'b': 4, 'a': 2}) c2.update(c2) c2 Counter({'b': 4, 'a': 2}) c + c Traceback (most recent call last): File "<ipython-input-18-e88785f3c342>", line 1, in <module> c + c File "/anaconda3/lib/python3.6/collections/__init__.py", line 705, in __add__ if newcount > 0: TypeError: '>' not supported between instances of 'list' and 'int'
On Tue, Oct 30, 2018 at 6:54 PM Alexander Belopolsky < alexander.belopolsky@gmail.com> wrote:
In [12]: a= mdict(a=[2], b='a') In [13]: a+a
Aren't you reinventing the Counter type?
from collections import Counter c = Counter(a=1,b=2) c + c Counter({'b': 4, 'a': 2})
Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
-- Keeping medicines from the bloodstreams of the sick; food from the bellies of the hungry; books from the hands of the uneducated; technology from the underdeveloped; and putting advocates of freedom in prisons. Intellectual property is to the 21st century what the slave trade was to the 16th.