Generator Comprehensions
Bengt Richter
bokr at oz.net
Tue Jan 29 09:10:46 EST 2002
On Tue, 29 Jan 2002 05:50:38 -0500, Oren Tirosh <oren-py-l at hishome.net> wrote:
>On Mon, Jan 28, 2002 at 09:29:46PM -0500, Raymond Hettinger wrote:
>> Wild idea of the day: Extend the syntax for list comprehensions
>> to have an optional 'yield' to create a generator rather than a list.
>>
>> sizegen = [ yield (len(line),line) for line in file.readline() ]
>
>I like it. Reusing the yield keyword is a very elegant solution.
>
>One problem with this syntax is that there is no justification for the use
>of square brackets - the result isn't a list. It looks like it can work
>just fine without them. The keyword yield can work similarly to the
>lambda keyword. It would have a priority just between lambda and boolean
>operations.
>
For easier parsing, how about
sizegen = yield.listcomp( (len(line),line) for line in file.readline() )
Regards,
Bengt Richter
More information about the Python-list
mailing list