[Python-Dev] Tricky way of of creating a generator via a comprehension expression
Nathaniel Smith
njs at pobox.com
Sat Nov 25 01:18:42 EST 2017
More information about the Python-Dev mailing list
Sat Nov 25 01:18:42 EST 2017
- Previous message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Next message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Nov 24, 2017 at 9:39 PM, Nick Coghlan <ncoghlan at gmail.com> wrote: > On 25 November 2017 at 15:27, Nathaniel Smith <njs at pobox.com> wrote: >> On Fri, Nov 24, 2017 at 9:04 PM, Nick Coghlan <ncoghlan at 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
- Previous message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Next message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list