On Fri, Nov 24, 2017 at 9:39 PM, Nick Coghlan <ncogh...@gmail.com> wrote: > On 25 November 2017 at 15:27, Nathaniel Smith <n...@pobox.com> wrote: >> On Fri, Nov 24, 2017 at 9:04 PM, Nick Coghlan <ncogh...@gmail.com> wrote: >>> def example(): >>> comp1 = yield from [(yield x) for x in ('1st', '2nd')] >>> comp2 = yield from [(yield x) for x in ('3rd', '4th')] >>> return comp1, comp2 >> >> Isn't this a really confusing way of writing >> >> def example(): >> return [(yield '1st'), (yield '2nd')], [(yield '3rd'), (yield '4th')] > > A real use case
Do you have a real use case? This seems incredibly niche... > wouldn't be iterating over hardcoded tuples in the > comprehensions, it would be something more like: > > def example(iterable1, iterable2): > comp1 = yield from [(yield x) for x in iterable1] > comp2 = yield from [(yield x) for x in iterable2] > return comp1, comp2 I submit that this would still be easier to understand if written out like: def map_iterable_to_yield_values(iterable): "Yield the values in iterable, then return a list of the values sent back." result = [] for obj in iterable: result.append(yield obj) return result def example(iterable1, iterable2): values1 = yield from map_iterable_to_yield_values(iterable1) values2 = yield from map_iterable_to_yield_values(iterable2) return values1, values2 -n -- Nathaniel J. Smith -- https://vorpus.org _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com