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 <apa...@gmail.com 
> <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
> python...@python.org <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
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to