Python培训
400-996-5531
lambda表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数。lambda表达式只可以包含一个表达式,不允许包含其他复杂的语句,但在表达式中可以调用其他函数,并支持默认值参数和关键参数,该表达式的计算结果相当于函数的返回值。下面的代码演示了不同情况下lambda表达式的应用。
>>> f = lambda x, y, z: x+y+z #把lambda表达式当做函数使用 >>> print(f(1, 2, 3)) 6 #使用lambda表达式定义带有默认值参数的函数 >>> g = lambda x, y=2, z=3: x+y+z >>> print(g(1)) 6 #调用时使用关键参数 >>> print(g(2, z=4, y=5)) 11 >>> L=[(lambda x: x**2), (lambda x: x**3), (lambda x: x**4)] >>> print(L[0](2), L[1](2), L[2](2)) 4 8 16 #lambda表达式可以作为字典的“值” >>> D={'f1':(lambda: 2+3), 'f2':(lambda: 2*3), 'f3':(lambda: 2**3)} >>> print(D['f1'](), D['f2'](), D['f3']()) 5 6 8 >>> L=[1, 2, 3, 4, 5] #没有名字的lambda表达式,作为函数参数 >>> print(map((lambda x: x+10), L)) [11, 12, 13, 14, 15] >>> L [1, 2, 3, 4, 5] >>> def demo(n): return n*n >>> demo(5) 25 >>> a_list = [1, 2, 3, 4, 5] #在lambda表达式中可以调用其他函数 >>> map(lambda x: demo(x), a_list) [1, 4, 9, 16, 25] #生成20个数,0-19 >>> data = 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] >>> import random #随机打乱顺序 >>> random.shuffle(data) >>> data [4, 3, 11, 13, 12, 15, 9, 2, 10, 6, 19, 18, 14, 8, 0, 7, 5, 17, 1, 16] #使用lambda表达式指定排序规则 >>> data.sort(key=lambda x: 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表达式指定排序规则 >>> data.sort(key=lambda x: 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] >>> from random import randrange #使用列表推导式生成7行5列二维随机数据 #每个数字在[1,10)范围内 >>> lst = [[randrange(1, 10) for i in range(5)] for j in range(7)] >>> for item in lst: 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列从小到大排序 >>> lst.sort(key=lambda item: (item[2], item[4])) >>> for item in lst: 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 © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved