文学书籍

Python中lambda表达式的常见用法

Python中lambda表达式的常见用法

lambda表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数。 lambda表达式只可以包含一个表达式,不允许包含其他复杂的语句,但在表达式中可以调用其他函数,并支持默认值参数和关键参数,该表达式的计算结果相当于函数的返回值。

下面的代码演示了不同情况下lambda表达式的应用。

f=lambdax,y,z:x+y+z#把lambda表达式当做函数使用print(f(1,2,3))6#使用lambda表达式定义带有默认值参数的函数g=lambdax,y=2,z=3:x+y+zprint(g(1))6#调用时使用关键参数print(g(2,z=4,y=5))11L=[(lambdax:x**2),(lambdax:x**3),(lambdax:x**4)]print(L[0](2),L[1](2),L[2](2))4816#lambda表达式可以作为字典的“值”D={f1:(lambda:2+3),f2:(lambda:2*3),f3:(lambda:2**3)}print(D[f1](),D[f2](),D[f3]())568L=[1,2,3,4,5]#没有名字的lambda表达式,作为函数参数print(map((lambdax:x+10),L))[11,12,13,14,15]L[1,2,3,4,5]defdemo(n):returnn*ndemo(5)25a_list=[1,2,3,4,5]#在lambda表达式中可以调用其他函数map(lambdax:demo(x),a_list)[1,4,9,16,25]#生成20个数,0-19data=list(range(20))print(data)[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]importrandom#随机打乱顺序(data)data[4,3,11,13,12,15,9,2,10,6,19,18,14,8,0,7,5,17,1,16]#使用lambda表达式指定排序规则(key=lambdax:len(str(x)))data[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]#使用lambda表达式指定排序规则(key=lambdax:len(str(x)),reverse=True)data[10,11,12,13,14,15,16,17,18,19,0,1,2,3,4,5,6,7,8,9]fromrandomimportrandrange#使用列表推导式生成7行5列二维随机数据#每个数字在[1,10)范围内lst=[[randrange(1,10)foriinrange(5)]forjinrange(7)]foriteminlst:print(item)[9,9,5,6,7][7,3,5,5,6][3,5,3,5,3][4,7,6,9,8][6,4,1,4,1][9,7,8,9,4][9,1,8,6,9]#首先按第3列从小到大排序#第3列一样的按第5列从小到大排序(key=lambdaitem:(item[2],item[4]))foriteminlst:print(item)[6,4,1,4,1][3,5,3,5,3][7,3,5,5,6][9,9,5,6,7][4,7,6,9,8][9,7,8,9,4][9,1,8,6,9]免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

提供的文章均由网友转载于网络,若本站转载中的文章侵犯了您的权益,请与本站管理员联系.
Copyright © 2006-2019 文学书籍_文学大全www.hy2733.com All Rights Reserved.