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/