I try to initialize an array with a lambda-function called by map, and to my surprize IF-ELSE is not valid inside lambda.
a = map( (lambda x: if (len(aDict[x])==m): return aDict[x] else: return false),
aDict.keys())
This is the error I get
File "objects.py", line 63
a = map( (lambda x: if (len(aDict[x])==m): return aDict[x] else: return false),
^
SyntaxError: invalid syntax
What is the reason this does not work?
EDIT:
Now I discovered the interesting alternative expression
>>> False and 'one' or 'two'
'two'
>>> True and 'one' or 'two'
'one'
Very interesting… This is One-liner expression , this is why it wor
You can’t use that syntax inside a lambda, nor can you explicitly return. Try this instead:
Lambda functions implicitly return the value resulting from evaluating the code in them. The code has to be expressible as a single compound expression (aka a one-liner) though.