As a contrived example:
myset = set([\'a\', \'b\', \'c\', \'d\'])
mydict = {item: (yield \'\'.join([item, \'s\'])) for item in myset}
and
I think that your code has to execute similarity of this:
def d(myset):
for item in myset:
yield item, (yield ''.join([item, 's']))
d(myset)
Firstly, evaluated yield ''.join([item, 's'] (and return 'as', 'cs', etc.). Value of yield expression is None, because is sent back to the generator. And then eval yield item, None, that return tuples ('a', None), ('b', None).
So, I have:
>>> list(d(myset))
['as', ('a', None), 'cs', ('c', None), 'bs', ('b', None), 'ds', ('d', None)]
What happens next, I do not understand.