List comprehension vs filter()

Mel mwilson at the-wire.com
Wed Apr 20 10:12:21 EDT 2011


Chris Angelico wrote:
> On Wed, Apr 20, 2011 at 5:16 PM, Tim Roberts <timr at probo.com> wrote:
>> You can solve this through the common lamba idiom of a closure:
>>
>> lst=filter(lambda x,posttype=posttype: x["type"].lower()==posttype,lst)
> 
> Seems a little odd, but sure. I guess this means that a function's
> default arguments are evaluated in the parent context, but the body is
> evaluated in its own context?

The operation of calling a function has to evaluate arguments provided in 
the caller's namespace and assign them to variables in the called function's 
namespace.  Yes.

	Mel.




More information about the Python-list mailing list