三元运算
在说三元运算之前,我们看一段代码:
a = 1 if a == 1: name = 'Hello' else: name = 'World' print(name)
输出:Hello
对于这种简单的判断语句我们可以将其使用三元运算进行表示:
a = 1 name = 'Hello' if a == 1 else 'World' print(name)
输出:Hello
可以看到上面4行代码实现的功能,使用三元运算一行代码就搞定了。
还有类似的代码(列表推导式、字典推导式):
l1 = [1, 2, 3, 4] l2 = [i for i in l1 if i < 3] print(l1) print(l2)
l = [('k1', 2), ('k2', 4), ('k3', 6), ('k4', 8)] d = {key: value for (key, value) in l} print(d)
都可以起到简化代码的作用。
lambda
同样,在说lambda之前,我们看一段代码:
def f1(p1): p1 += 100 return p1 ret1 = f1(10) print(ret1)
输出:110
对于这种简单的函数我们可以使用lambda进行表示:
f2 = lambda p1: p1 + 100 ret2 = f2(10) print(ret2)
输出:110
注意:lambda函数可以接受任意个参数,包括可选参数,但是表达式只有一个(即不能在后面添加if等语句)。
如果你的函数非常简单,只有一个表达式,不包含命令,可以考虑lambda函数。