Python之Lambda与三元运算
Lambda 运算
概念:是指一类无需定义标识符(函数名)的函数或者子程序。
特点:匿名函数不使用def定义函数,使用lambda来创建匿名函数
1.lambda只是一个表达式,函数体比def简单
2.lambda的主体是一个表达式,而不是一个代码块,仅仅只能在lambda表达式中封装简单的逻辑
3.lambda函数有自己的命名空间,且不能访问*参数列表之外的或全局命名的空间参数(只能用自己的参数,其他的用不了)
lambda 语法:
lambda 参数1,参数2,…,参数n: expression[表达式]
sum = lambda num1, num2: num1 + num2
print(sum(1, 2))
输出:
3
Lambda表达式和if not...else用法
#if 条件为真的时候返回if前面内容,否则返回0
exp1= lambda x:x+1 if 2==1 else 0
print(exp1(2))
exp2 = lambda x:x+1 if 1==1 else 0
print(exp2(2)) 输出:
0
3
#if not 为假返回if not前面内容,否则返回0
exp3 = lambda x:x+1 if not 2==1 else 0
print(exp3(2)) exp4 = lambda x:x+1 if not 1==1 else 0
print(exp4(2)) 输出:
3
三元运算
a = 1
b = 2
h = "" h = "变量1" if a>b else "变量2" print(h)
# 普通条件语句
if 1 == 1:
name = ‘Jack Ma'
else:
name = ‘pony' # 三元运算
name = ‘Jack Ma' if 1 == 1 else ' pony'
def whoIs_richest(jackMa='alibaba', pony='tencent'):
return 'jackMa' if len(jackMa)>len(pony) else 'pony' print(whoIs_richest()) 输出:
pony