Framework for a beginner

Terry Reedy tjreedy at udel.edu
Thu Apr 19 13:12:33 EDT 2012


On 4/19/2012 7:20 AM, Alek Storm wrote:

> Why not use list comprehension syntax?

For 3.x, that should be shortened to "Why not use comprehension 
syntax?", where comprehensions by default become generator expressions.

These:
 > Map: [val+1 for val in some_list]
 > Filter: [val for val in some_list if val > 0]

become
 > Map: (val+1 for val in some_list)
 > Filter: (val for val in some_list if val > 0)

as map and filter produce iterators, just like comprehensions 
interpreted as generator expressions.

> functions (reduce() was removed from 3.0 for reasons I will never
> understand).

The signature of Python's reduce is defective* because it combines two 
versions of reduce (2 and 3 arg forms) into one function in a way that 
makes it confusing and hard to use and therefore less used than it might 
be otherwise. So it was moved (not removed) to the functools module.

* One consistent signature that people could remember would be
reduce3(update(current,next), initial_current, source_of_nexts)

-- 
Terry Jan Reedy




More information about the Python-list mailing list