我尝试使用map调用的lambda函数初始化一个数组,而我的surprize IF-ELSE
在lambda中无效。
a = map( (lambda x: if (len(aDict[x])==m): return aDict[x] else: return false),
aDict.keys())
这是我得到的错误
File "objects.py", line 63
a = map( (lambda x: if (len(aDict[x])==m): return aDict[x] else: return false),
^
SyntaxError: invalid syntax
这不起作用的原因是什么?
编辑:
现在我发现了有趣的替代表达式
>>> False and 'one' or 'two'
'two'
>>> True and 'one' or 'two'
'one'
非常有趣......这是单行表达,这就是为什么它
答案 0 :(得分:5)
您不能在lambda中使用该语法,也不能显式返回。试试这个:
lambda x, m: aDict[x] if (len(aDict[x])==m) else False
Lambda函数隐式返回通过评估其中的代码而得到的值。代码必须可以表达为单个复合表达式(也称为单行)。