On 2017-06-08 20:16, Nick Badger wrote:
Well, it's not deliberately not destructive, but I'd be more in favor of dict unpacking-assignment if it were spelled more like this:

     >>> foo = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
     >>> {'a': bar, 'b': baz, **rest} = foo
     >>> bar
     1
     >>> baz
     2
     >>> rest
     {'c': 3, 'd': 4}
     >>> foo
     {'a': 1, 'b': 2, 'c': 3, 'd': 4}

That also takes care of the ordering issue, and any ambiguity about "am I unpacking the keys, the values, or both?", at the cost of a bit more typing. However, I'm a bit on the fence about this syntax as well: it's pretty easily confused with dictionary creation. Maybe the same thing but without the brackets?

[snip]

Maybe the braces could be doubled-up:

>>> foo = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> {{a, b, **rest}} = foo
>>> a
1
>>> b
2
>>> rest
{'c': 3, 'd': 4}

It could also be used on the RHS to pack:

>>> a = 1
>>> b = 2
>>> c = 3
>>> d = 4
>>> foo = {{a, b, c, d}}
>>> foo
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
_______________________________________________
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