João Matos
--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.
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.
--Guido van Rossum (python.org/~guido)
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/