Local variable definition in Python list comprehension
Ben Bacarisse
ben.usenet at bsb.me.uk
Thu Sep 1 10:14:55 EDT 2022
James Tsai <jamestztsai at gmail.com> writes:
> I find it very useful if I am allowed to define new local variables in
> a list comprehension. For example, I wish to have something like
> [(x, y) for x in range(10) for y := x ** 2 if x + y < 80], or
> [(x, y) for x in range(10) with y := x ** 2 if x + y < 80].
>
> For now this functionality can be achieved by writing
> [(x, y) for x in range(10) for y in [x ** 2] if x + y < 80].
x and y are, to a first approximation, new local variables defined in a
list comprehension. I think you need to restate what it is you want.
> Is it worthwhile to add a new feature like this in Python? If so, how
> can I propose this to PEP?
To make any sort of case you'd need to give an example that does not
have a clearer way to write it already. Your working version is, to me,
clearer that the ones you want to be able to write.
--
Ben.
More information about the Python-list
mailing list