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 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
Python中的lstrip()方法使用简介
May 19 Python
Python松散正则表达式用法分析
Apr 29 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
django实现类似触发器的功能
Nov 15 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
Django接收照片储存文件的实例代码
Mar 07 Python
python with语句的原理与用法详解
Mar 30 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php批量修改表结构实例
2017/05/24 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
js文字横向滚动特效
2015/11/11 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
基于Python实现扑克牌面试题
2019/12/11 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
css3实现动画的三种方式
2020/08/24 HTML / CSS
同学聚会策划方案
2014/06/06 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
团员自我评价范文
2015/03/10 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB