我尝试使用 map 调用的 lambda 函数初始化数组,令我惊讶的是 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'
非常有趣...这是单行表达式,这就是它起作用的原因
最佳答案
您不能在 lambda 中使用该语法,也不能显式返回。试试这个:
lambda x, m: aDict[x] if (len(aDict[x])==m) else False
Lambda 函数隐式返回评估其中代码的结果值。不过,代码必须可以表示为单个复合表达式(也称为单行代码)。
关于python - lambda 中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981889/