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)