python匿名函数的使用方法解析


Posted in Python onOctober 10, 2019

一、lambda关键字的使用方法

func=lambda x:x+1
print(func(1))
#2
print(func(2))
#3

#以上lambda等同于以下函数
def func(x):
  return(x+1)

注释:可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体。在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。

二、Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce。

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。

filter(function or None, sequence) -> list, tuple, or string:入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串。

map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。

map(function, sequence[, sequence, ...]) -> list:入参是为函数和列表/元组/字符串,返回值为function(item)列表。

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。

reduce(function, sequence[, initial]) -> value:入参是为函数和列表/元组/字符串和初始值,返回值为数值。

from functools import reduce 
 foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
 
 print (list(filter(lambda x: x % 3 == 0, foo)))
 #[18, 9, 24, 12, 27]
 
 print (list(map(lambda x: x * 2 + 10, foo)))
 #[14, 46, 28, 54, 44, 58, 26, 34, 64]
 print (reduce(lambda x, y: x + y, foo))
#139
#1.lambda用法,冒号之前的是入参,冒号之后的是表达式,返回的值,最简单的函数
print [(lambda x:x*x)(x)for x in range(11)]
#结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print (lambda x:x*x)(3)
#结果:9
g=lambda x:x*x
print g(4)
#结果:16

#2.filter用法:返回执行结果为TRUE的入参(入参是列表字符元组)
print filter(lambda x:x*x-4,range(10))
#结果:[0, 1, 3, 4, 5, 6, 7, 8, 9]

#3.map的用法:对列表入参依次执行函数。入参为列表,有多少个列表,就应该有多少个入参。
print map(lambda x:x*x-4,range(10))
#结果:[-4, -3, 0, 5, 12, 21, 32, 45, 60, 77]
print map(lambda x,y:x*y-4,range(3),[8,9,10])
#结果:[-4, 5, 16]

#4.reduce用法:先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给fuction,最终返回一个结果值
#接收的入参个数只能为2
print reduce(lambda x,y:x*y-4,range(4))
#结果:-40
#计算0到100的和
print reduce(lambda x,y:x+y, range(101))
#结果:5050
print reduce(lambda x,y:x+y, range(101),100)
#结果:5150

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之Hello World!
Aug 29 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python 多线程实例详解
Mar 25 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
python中pygame安装过程(超级详细)
Aug 04 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
python 数据提取及拆分的实现代码
Aug 26 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
vue常用指令代码实例总结
Mar 16 Python
Python切图九宫格的实现方法
Oct 10 #Python
python 3.7.4 安装 opencv的教程
Oct 10 #Python
Django实现auth模块下的登录注册与注销功能
Oct 10 #Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 #Python
关于pycharm中pip版本10.0无法使用的解决办法
Oct 10 #Python
超实用的 30 段 Python 案例
Oct 10 #Python
使用浏览器访问python写的服务器程序
Oct 10 #Python
You might like
通过html表格发电子邮件
2006/10/09 PHP
一个颜色轮换的简单例子
2006/10/09 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
addEventListener 的用法示例介绍
2014/05/07 Javascript
jQuery 仿百度输入标签插件附效果图
2014/07/04 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
python zip文件 压缩
2008/12/24 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
啦啦队口号大全
2014/06/16 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
教研活动主持词
2015/07/03 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
Python中itertools库的四个函数介绍
2022/04/06 Python