python(13)——lambda表达式

ambda表达式是一种简洁格式的函数。该表达式不是正常的函数结构,而是属于表达式的类型。 

基本格式:

lambda 参数,参数...:函数功能代码
如:lambda x,y:x + y    获取2个值的和的lambda函数

带分支格式:

lambda 参数,参数... :值1  if 条件表达式  else 值2
如:lambda sex : '有胡子' if sex == 'man' else '没胡子'

 

调用函数格式:

lambda 参数,参数...:其他函数(...)
如:lambda x:type(x)

 

lambda表达式的优缺点:

优点:
    书写简单不需要def关键字
    不需要费脑子想函数名(匿名函数)看起来高大上!

缺点:
    lambda表达式功能受限,无法使用循环和多项分支
    复杂的操作,不适合lambda表达式

示例
#方式1.声明一个简单的lambda表达式
mylamb = lambda x,y:x+y
#调用函数
result = mylamb(4,5)
print(result)

#方式2.声明一个带有分支的lambda表达式
mylamb= lambda sex : '有胡子' if sex == 'man' else '没胡子'
#调用函数
result = mylamb('woman')
print(result)

#方式3.声明一个调用函数的lambda表达式
mylamb = lambda x:type(x)
#调用函数
result = mylamb('拾元')
print(result)

#使用列表推导式,制作所有99乘法表中的运算

lists1 = [1,2,3,4,5,6,7,8,9]

#利用元字符输出结果
result = ['%d*%d=%2d'%(j,i,i*j) for i in lists1 for j in lists1 if j <= i]
print(result)


#字符串输出结果
result = [str(j) + '*' + str(i) + '=' + str(i*j) for i in lists1 for j in lists1 if j <= i]
print(result)

 


 

posted on 2018-01-14 12:23  纵情狂飞  阅读(245)  评论(0编辑  收藏  举报