[Python-ideas] Assignments in list/generator expressions
Nick Coghlan
ncoghlan at gmail.com
Tue Apr 12 07:06:33 CEST 2011
On Tue, Apr 12, 2011 at 1:53 PM, Carl M. Johnson
<cmjohnson.mailinglist at gmail.com> wrote:
> On Mon, Apr 11, 2011 at 2:14 PM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
>
>> ys = [y for x in xs letting y = f(x) if y]
>
> Isn't that ambiguous? What if someone used the conditional expression:
> ys = [y for x in xs letting y = f(x) if y else g(x)] ? It seems like
> the letting/given has to go last in order to eliminate the possible
> ambiguity in the subsequent optional if clause.
given/as resolves the parsing ambiguity problem by putting the names second:
ys = [y for x in xs given f(x) if p(x) else g(x) as y]
However, it does make it clear how limited such a clause still is if
it exists only at the comprehension level and isn't an expression in
its own right.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Python-ideas
mailing list