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结合shell查询google关键词排名的实现代码
Feb 27 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
Python模块搜索路径代码详解
Jan 29 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
Python读取xlsx文件的实现方法
Jul 04 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
Python OrderedDict字典排序方法详解
May 21 Python
Python selenium模块实现定位过程解析
Jul 09 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
python用字节处理文件实例讲解
Apr 13 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
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
2016/06/17 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
python实现发送邮件功能代码
2017/12/14 Python
简单了解python模块概念
2018/01/11 Python
python如何对实例属性进行类型检查
2018/03/20 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python使用epoll实现服务端的方法
2018/10/16 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
使用python实现简单五子棋游戏
2019/06/18 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python的flask框架难学吗
2020/07/31 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
塔吉特百货公司官网:Target
2017/04/27 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
Ruby如何定义一个类
2012/10/08 面试题
自我评价优秀范文分享
2013/11/30 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
企业授权委托书范本
2014/09/22 职场文书
同事去世追悼词
2015/06/23 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python