On Jun 7, 2017 5:15 PM, "Matt Gilson" <m...@getpattern.com> wrote:
On Wed, Jun 7, 2017 at 3:11 PM, Erik <pyt...@lucidity.plus.com> wrote: > On 07/06/17 19:14, Nick Humrich wrote: > >> a, b, c = mydict.unpack('a', 'b', 'c') >> > > def retrieve(mapping, *keys): > return (mapping[key] for key in keys) > > > Or even: from operator import itemgetter retrieve = itemgetter('a', 'b', 'c') a, b, c = retrieve(dictionary) Neither of these are really comparable to destructuring. If you take a look at how Erlang and Elixir do it, and any related code, you'll find it used constantly, all over the place. Recent ECMAScript is very similar, allowing both destructuring into vars matching the key names, or arbitrary var names. They both allow destructuring in the function header (IIRC python can do this with at least tuples). Erlang/Elixir goes beyond this by using the pattern matching to select the appropriate function clause within a function definition, but that's less relevant to Python. This feature has been requested before. It's easily one of the most, if not the top, feature I personally wish Python had. Incredibly useful and intuitive, and for me again, way more generally applicable than iterable unpacking. Maps are ubiquitous. -- C Anthony [mobile]
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/