conditionals in lambdas?
gball at cfa.harvard.edu
Sat Nov 4 00:29:35 CET 2000
Michael P. Soulier wrote
> filecontents = filter(filterloaddata, filecontents)
> def filterloaddata(string):
> if string[:9] == '#LOADDATA':
> return 1
> return 0
This is very easily done using a lambda.
filecontents = filter(lambda s: s[:9]=='#LOADDATA', filecontents)
You just have to know that the relational operators are expressions and
can appear anywhere (they are 1 or 0 for true or false...). This is how I
use filter() most of the time.
You can do much more complicated things to make up for lack of control
flow in expressions, using logical operators and indexing, but it's a case
of diminishing returns.
More information about the Python-list