[Python-ideas] Syntax for allowing extra keys when unpacking a dict as keyword arguments

Viktor Roytman viktor.roytman at gmail.com
Sat Apr 13 12:34:53 EDT 2019


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... at 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... at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20190413/3695437c/attachment.html>


More information about the Python-ideas mailing list