[Python-ideas] Enhancing dict.values
Guido van Rossum
guido at python.org
Fri May 27 13:50:48 EDT 2016
On Fri, May 27, 2016 at 9:36 AM, Chris Barker <chris.barker at noaa.gov> wrote:
>
> On Fri, May 27, 2016 at 9:17 AM, Steven D'Aprano <steve at pearwood.info>
> wrote:
>>
>> # apologies for breaking my own rule about realistic names
>> fee, fi, fo, fum = mydict.getmany('fee', 'fi', 'fo', 'fum')
>
> so how again is the much better than:
>
>> Isn't this the status quo?
>> a, b, c = [mapping[k] for k in ('a', 'b', 'c')]
>
> the objection to that was that it gets ugly when you've got longer, more
> realistic names (and maybe more of them.)
>
> fee, fi, fo, fum = [mapping[k] for k in ('fee', 'fi', 'fo', 'fum')]
>
> only a little more typing, and in both cases, you need to specify the names
> twice.
>
> (of course, they don't need to be the same names...)
Honestly I don't like the comprehension version much; it reeks of
cleverness. The advantage of the getnamy() spelling is that you can
Google for it more easily. (But I don't know how it would handle
nested unpacking, which some have said is an important use case to
warrant adding complexity to the language.)
If this was a Dropbox code review I'd say rewrite it as
fee = mapping['fee']
fi = mapping['fi']
etc. -- then nobody will have any trouble understanding what it does.
--
--Guido van Rossum (python.org/~guido)
More information about the Python-ideas
mailing list