[Python-Dev] Tricky way of of creating a generator via a comprehension expression (original) (raw)
Nathaniel Smith njs at pobox.com
Sat Nov 25 01🔞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 ]