On Saturday, April 13, 2019 at 9:03:54 AM UTC-4, Chris Angelico wrote:
>
> On Sat, Apr 13, 2019 at 11:00 PM Juancarlo Añez <[email protected] 
> <javascript:>> wrote:
> > func(**{k:v for k, v in d.items() if k in ('a','b','c'))
> >
>
> Would be really nice to be able to spell this as a dict/set intersection.
>
> func(**(d & {'a', 'b', 'c'}))
>
> ChrisA
> _______________________________________________
> Python-ideas mailing list
> [email protected] <javascript:>
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
I like this idea. It accomplishes the goal of only using some of the keys 
and has broader applications for working with dicts in general.

It might also be nice to have something that splits a dict into two, like

    >>> items = dict(a=1, b=2, c=3)
    >>> included, excluded = items &- {'a', 'b'}
    >>> print(included)
    {'a': 1, 'b': 2}
    >>> print(excluded)
    {'c': 3}

I don't know if I like the &- "operator" but it is illustrative.
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to