代码改变世界

Python之Lambda与三元运算

2019-11-22 23:20  清风软件测试开发  阅读(568)  评论(0编辑  收藏  举报

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
0

 

三元运算

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