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