
On Wed, Feb 27, 2019 at 10:42 AM Michael Selik mike@selik.org wrote:
On Wed, Feb 27, 2019 at 10:22 AM Anders Hovmöller boxed@killingar.net wrote:
I dislike the asymmetry with sets:
{1} | {2}
{1, 2}
To me it makes sense that if + works for dict then it should for set too.
/ Anders
On 27 Feb 2019, at 17:25, João Matos jcrmatos@gmail.com wrote:
Hello,
I would like to propose that instead of using this (applies to Py3.5
and upwards)
dict_a = {**dict_a, **dict_b}
we could use dict_a = dict_a + dict_b
The dict subclass collections.Counter overrides the update method for adding values instead of overwriting values.
https://docs.python.org/3/library/collections.html#collections.Counter.updat...
Counter also uses +/__add__ for a similar behavior.
>>> c = Counter(a=3, b=1) >>> d = Counter(a=1, b=2) >>> c + d # add two counters together: c[x] + d[x] Counter({'a': 4, 'b': 3})
At first I worried that changing base dict would cause confusion for the subclass, but Counter seems to share the idea that update and + are synonyms.
Great, this sounds like a good argument for + over |. The other argument is that | for sets *is* symmetrical, while + is used for other collections where it's not symmetrical. So it sounds like + is a winner here.