[Python-ideas] Adding "+" and "+=" operators to dict
C Anthony Risinger
anthony at xtfx.me
Wed Feb 18 05:50:27 CET 2015
On Tue, Feb 17, 2015 at 10:08 PM, Stephen J. Turnbull <stephen at xemacs.org>
wrote:
> C Anthony Risinger writes:
>
> > I'm not versed enough in the math behind it to know if it's expected or
> > not, but as it stands, to remain compatible with sets, `d1 | d2` should
> > behave like it does in my code (prefer the first, not the last). I
> kinda
> > like this, because it makes dict.__or__ a *companion* to .update(), not
> a
> > replacement (since update prefers the last).
>
> But this is exactly the opposite of what the people who advocate use
> of an operator want. As far as I can see, all of them want update
> semantics, because that's the more common use case where the current
> idioms feel burdensome.
>
True... maybe that really is a good case for the + then, as something like
.update().
Personally, I think making dict be more set-like is way more
interesting/useful, because of the *filtering* capabilities:
# drop keys
d1 -= (keys_ignored, ...)
# apply [inverted] mask
d1 &= (keys_required, ...)
d1 ^= (keys_forbidden, ...)
__or__ would still work like dict.viewkeys.__or__, and behaves like a bulk
.setdefault() which is another neat property:
# same as looping d2 calling d1.setdefault(...)
d1 |= d2
Using + for the .update(...) case seems nice too :)
--
C Anthony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150217/4ed93b1e/attachment.html>
More information about the Python-ideas
mailing list