On 11/3/2016 4:29 AM, Steven D'Aprano wrote:

Nonsense. It is perfectly readable because it is explicit about what is being
done, unlike some magic method that you have to read the docs to understand
what it does.

Agreed.

A list comprehension or for-loop is more general and can be combined so you can
do both:

alist[:] = [func(x) for x in alist if condition(x)]

The qualifier 'list' is not needed. The right hand side of slice assignment just has to be an iterable. So a second interation to build an intermediate list is not required.

alist[:] = (func(x) for x in alist if condition(x))

The parentheses around the generator expression are required here. (Steven, I know you know that, but not everyone else will.)

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to