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中的控制流语句的知识点
Apr 14 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
使用PDB简单调试Python程序简明指南
Apr 25 Python
连接Python程序与MySQL的教程
Apr 29 Python
如何用itertools解决无序排列组合的问题
May 18 Python
python实现朴素贝叶斯算法
Nov 19 Python
Python面向对象程序设计之类的定义与继承简单示例
Mar 18 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
Python pickle模块常用方法代码实例
Oct 10 Python
快速创建python 虚拟环境
Nov 28 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
url decode problem 解决方法
2011/12/26 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
Js之软键盘实现(js源码)
2007/01/30 Javascript
修改发贴的编辑功能
2007/03/07 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
python itchat实现微信自动回复的示例代码
2017/08/14 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
Python networkx包的实现
2020/02/14 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
收银员的岗位职责范本
2014/02/04 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
教室标语大全
2014/06/21 职场文书
效能风暴心得体会
2014/09/04 职场文书
高考升学宴答谢词
2015/01/20 职场文书