Two variable dictionary comprehension
Deborah Swanson
python at deborahswanson.net
Mon Apr 3 13:27:33 EDT 2017
Dennis Lee Bieber wrote, on April 03, 2017 9:35 AM
>
> On Mon, 3 Apr 2017 07:30:40 -0700, "Deborah Swanson"
> <python at deborahswanson.net> declaimed the following:
>
> >
> >Clearly there's more to be found in nooks, crannies and
> byways in the
> >docs than you'll get to from the given pointers in the
> index. Maybe it
> >would be worthwhile to scrape the whole mess and have it in
> searchable
> >text form. Another thing Python would be the right tool for the job
> >for. Regular updates as the docs are updated would be a good
> idea too.
> >It's obvious that today's Google isn't up to it, although it
> occurs to
> >me that I haven't tried Google's site search on python.org.
> >
> On Windows, the (at least, for ActiveState releases)
> documentation is available in Windows Help format -- though
> I'll admit the "free text search" leaves a lot to be desired...
>
> "dict comprehension" didn't find anything obvious;
> "dictionary comprehension" brought up PEP 274 (note: I still
> use 2.7 as main version).
>
> -=-=-=-=-=-
> Semantics
> The semantics of dict comprehensions can actually be demonstrated
> in stock Python 2.2, by passing a list comprehension to the
> builtin dictionary constructor:
>
> >>> dict([(i, chr(65+i)) for i in range(4)])
>
> is semantically equivalent to
>
> >>> {i : chr(65+i) for i in range(4)}
>
> The dictionary constructor approach has two dictinct disadvantages
> from the proposed syntax though. First, it isn't as legible as a
> dict comprehension. Second, it forces the programmer to create an
> in-core list object first, which could be expensive.
>
> -=-=-=-=-=-
> --
> Wulfraed Dennis Lee Bieber AF6VN
> wlfraed at ix.netcom.com HTTP://wlfraed.home.netcom.com/
It would be interesting to play around with different list
comprehensions than the one they've shown.
I'll admit that both dictionaries and comprehensions are still a little
bit fuzzy to me, especially when I get away from the common usages. This
could be a good exercise to clarify some of the fuzzy areas.
Deborah
More information about the Python-list
mailing list