匿名函数 —— 一行函数

lambda —— 关键字

x是普通函数的形参(位置,关键字...)可以不接收参数(x可以不写)

:x是普通函数的函数值(只能返回一个数据类型)(:x返回值必须写)

1)此函数不是没有名字,他是有名字的,他的名字就叫做lambda

2)lambda 是定义匿名函数的关键字,相当于函数的def.

3)lambda 后面直接加形参,形参加多少都可以,只要用逗号隔开就行。

func = lambda a, b, *args, sex='alex', c, **kwargs: kwargs

print(func(3, 4, c=666, name='alex'))

结果:{'name': 'alex'}

# 所有类型的形参都可以加,但是一般使用匿名函数只是加位置参数,其他的用不到。

把匿名函数拆开写,如下

def func(a, b, *args, sex='alex', c, **kwargs):

return kwargs

a = func(3, 4, c=666, name='alex')

print(a)

结果:{'name': 'alex'}

4)返回值在冒号之后设置,返回值和正常的函数一样,可以是任意数据类型。(但是想要返回多个元素要以容器的形式返回)

5)匿名函数不管多复杂.只能写一行.且逻辑结束后直接返回数据

格式:lambda x:x

print((lambda x: x + 6)(5))

结果:11

def func(x):

return x + 6

print(func(5))

结果:11

此处使用列表推导式,返回值是地址

lst = [lambda :i for i in range(5)]

print(lst)

拆解成函数:

lis = []

for i in range(5):

def func():

return i

a = func

lis.append(a)

print(lis)

结果:[, , , , ]

lambda表达式是可以嵌套的

action = (lambdax : (lambda y : x + y))

a = action(10)

a(5)

结果:15

这就是一个用lambda实现的闭包,与普通闭包一样,内嵌lambda表达式可以获得上层lambda函数的变量。

匿名函数的使用

匿名函数通常被用作高阶函数(higher-order function,参数为函数的函数)的参数。比如,几个内置函数:filter(),map(),reduce()。下面我们分别看看这几个函数的用法及达到相同效果的python另一种特征的用法

filter函数

lis = [1, 2, 3, 4]

re = filter(lambda x: x % 2 == 0, lis)

print(list(re))

result1 = [x for x in lis if x % 2 == 0]

print(result1)

结果:[2,4]

[2,4]

map函数

lis = [1, 2, 3]

result = map(lambda x: x*2, lis)# 使用lambda函数

print(list(result))

result1 = [x*2 for x in lis]#使用列表推导式

print(result1)

结果:[2, 4, 6]

[2, 4, 6]

reduce函数

from functools import reduce

lis = [1, 2, 3, 4]

result = reduce(lambda x, y: x+y, lis)

print(result)

结果:10

在Python2.x版本中recude是直接 import就可以的, Python3.x版本中需要从functools这个包中导入

除reduce函数的替代用法比较特殊外,map和filter函数都可以使用列表推导式代替。据说,龟叔本打算将 lambda 和 reduce 都从全局名字空间都移除, 舆论说龟叔不喜lambda 和 reduce最后lambda没删除是因为和一个人给龟叔写了好多封,进行交流然后把lambda保住了

php inqude函数,Python匿名函数(lambda函数)相关推荐

  1. 关于python中lambda函数的描述_关于Python中的lambda函数

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

  2. python中的lambda函数用法--无需定义函数名的函数或子程序,避免代码充斥着大量单行函数

    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序. lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值. 要点: lambda 函数不能包含命令 包含 ...

  3. 详解python中的lambda函数

    什么是lambda? lambda是Python中预留的一个关键词,当我们需要一个函数,而又不想重新去为函数命名时,我们就可以使用lambda关键词来简单的去定义一个函数,也就是所谓的匿名函数,它在我 ...

  4. Python中的lambda函数用法

    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序.所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名字,是一种简单的.在同一行中定义函数的方法. lambda函数一般 ...

  5. 一文让你彻底掌握【Python中的lambda函数】

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片. 本文和你 ...

  6. python中lambda函数_python中的lambda函数用法

    例1:传入多个参数的lambda函数 defsum(x,y):return x+y 用lambda来实现: p = lambda x,y:x+yprint(p(4,6)) 例2:传入一个参数的lamb ...

  7. python中的lambda函数

    最近碰见太多次lambda函数了,那就来详细解释一下该函数. lambda函数 我们先对lambda函数进行一个简单的介绍 lambda函数是一种匿名函数,即没有名字的函数 使用lambda保留字定义 ...

  8. c++ lambda函数_C++11 之 lambda函数的详细使用

    1. lambda 函数概述 lambda 表达式是一种匿名函数,即没有函数名的函数:该匿名函数是由数学中的λ演算而来的.通常情况下,lambda函数的语法定义为: [capture] (parame ...

  9. js中的匿名函数和匿名自执行函数

    1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景: <input type="button" value="点击" id=& ...

最新文章

  1. Java--基础总结
  2. 广州的11个辖区_广州“受欢迎”的2个区,相距仅20公里,若“合并”将超黄埔区...
  3. 模拟使用Flume监听日志变化,并且把增量的日志文件写入到hdfs中
  4. redis根据通配符去批量删除指令
  5. Spring注解编程基石(二)
  6. Python全栈工程师(异常(基础))
  7. C#中输入法全角转换半角
  8. excel python插件_如何利用Excel与Python制作PPT
  9. 软件工程导论 06章详细设计
  10. c3p0与dbcp的异同
  11. iOS开发UI篇—UIScrollView控件实现图片缩放功能
  12. Cesium:加载百度地图
  13. 算法竞赛入门经典笔记
  14. Charles做弱网测试
  15. Java基于POI动态合并单元格
  16. 启用计算机的fn键,联想电脑怎么设置fn键
  17. PV、UV、IP分别是什么意思
  18. Linux下WebLogic12安装
  19. 微擎人人商城 后台开启WAP访问后 微信浏览器 跳过授权 手机号密码登录
  20. 内地移动支付全球领先?醒醒吧,香港在这5个方面已赶超内地了!

热门文章

  1. jquery常见插件用法表
  2. Modal View Controllers, Not Model-View-Controller(MVC)
  3. Download Android source code
  4. office系统构架
  5. httpclient: 设置连接池及超时配置,请求数据:PoolingHttpClientConnectionManager
  6. Oracle内置存储过程之DBMS_OUTPUT
  7. JDBC(14)—对DAO进行改进修改
  8. vue2.0环境搭建
  9. ASP.NET之Application、Session和Cookie的差别
  10. 反射根据每一列的列名获取List T 中的列值