环境:python shell 3.5.1

刚发现一些 lambda 表达式有趣的地方,不一定都对,先记录下:

>>> a=lambda x :x % 2
>>> a(1)
1
>>> a(0)
0

这是最简单不过的 lambda 表达式了,这样表示返回值是 x%2,这里如果改成 x%2 == 0 则返回的是布尔类型的值,可以配合 filter()使用。

如果我们想返回符合一定条件的,就需要这样:

>>> a=lambda x:x*5 if x%2
SyntaxError: invalid syntax
>>> a=lambda x:x*5 if x%2 else None
>>> a(10)
>>> a(9)
45

同时,你会发现if 必须和 else 一起出现,否则就会报错。