Two variable dictionary comprehension
Rob Gaddi
rgaddi at highlandtechnology.invalid
Mon Apr 3 13:38:15 EDT 2017
On 04/03/2017 10:27 AM, Deborah Swanson wrote:
> 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
>
And don't forget
dict_comp : { k:v for (k,v) in kv_provider }
set_comp : { item for item in item_provider }
set_of_tuples_comp : { (k,v) for (k,v) in kv_provider }
Just to make things more complicated.
--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order. See above to fix.
More information about the Python-list
mailing list