前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >lambda函数

lambda函数

作者头像
dogfei
发布2020-07-31 11:44:44
8810
发布2020-07-31 11:44:44
举报
文章被收录于专栏:devops探索devops探索

介绍

lambda函数就是我们常说的匿名函数,就是不用定义函数名,lambda更像是一个表达式,限制了程序的嵌套,是一个为编写简单的函数而设计的。

实例

1、简单运算

1)、求几个数的和

1 2 3 4

>>> f = lambda x,y,z : x+y+z >>> f(1,2,3) 6

2)、对列表进行排序

1 2 3

>>> num = [1,24,46,35,1,4,7] >>> sorted(num,key=lambda x : x ) [1, 1, 4, 7, 24, 35, 46]

3)、求几个值的平方

1 2

>>> list(map(lambda x : x*x,range(1,10))) [1, 4, 9, 16, 25, 36, 49, 64, 81]

map函数的用法:

1 2

map(function,sequence) 把sequence中的值当做参数逐个传给function,这里的map(lambda x : x*x,range(1,10))就是将1到9这九个参数传递给lambda这个函数。

4)、找出一组数中的偶数

1 2

>>> list(filter(lambda x : x % 2 == 0,range(1,21))) [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

fileter()函数用法:

1 2 3 4 5 6 7 8 9 10 11

filter(function,sequence) 对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple返回。 这里的fileter(lambda x : x % 2 == 0,range(1,21)),执行过程如下: 1 % 2 != 0 False 2 % 2 = 0 True 3 $ 2 != 0 False ... ... ... 20 % 2 = 0 True 执行结果为True的会返回

5)、求1~100之和

1 2 3

>>> from functools import reduce >>> reduce(lambda x,y : x + y,range(1,101)) 5050

reduce()函数用法:

1 2 3 4 5 6 7 8

reduce(function,sequence) reduce中的函数每次只能接收两个参数,先是把sequence中第一个值和第二个值传递给function,然后再把function的结果和sequence的第三个值作为参数再传递给function,过程如下: 1 + 2 = 3 3 + 3 = 6 6 + 4 = 10 ... ... ...

2、闭包

闭包:一个定义在函数内部的函数,闭包使得变量即使脱离了该函数的作用域范围也依然能被访问到。

也就是说,我们定义了一个函数,该函数中包含了一个lambda函数,例如:

1 2 3 4 5 6

>>> def f(x): ... return lambda y : y + x ... >>> g = f(1) >>> g(9) 10

3、默认参数

1 2 3 4 5 6 7

>>> x = (lambda a='fee',b='fie',c='foe' : a + b + c) >>> x('wee') 'weefiefoe' >>> x('fei') 'feifiefoe' >>> x('hello','world','python') 'helloworldpython'

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 实例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档