Как надуманный пример:
myset = set(['a', 'b', 'c', 'd'])
mydict = {item: (yield ''.join([item, 's'])) for item in myset}
и list(mydict)
дает:
['as', 'cs', 'bs', 'ds', {'a': None, 'b': None, 'c': None, 'd': None}]
Что здесь происходит? Что делает yield
? И соответствует ли это поведение независимо от того, какое выражение следует за yield
?
Примечание. Я знаю, что выполнение mydict = {item: ''.join([item, 's']) for item in myset}
даст словарь {'a': 'as', 'b': 'bs', 'c': 'cs', 'd': 'ds'}
, который, кажется, я пытаюсь сделать здесь.