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实现跨文件全局变量的方法
Jul 07 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
在CMD命令行中运行python脚本的方法
May 12 Python
python之文件读取一行一行的方法
Jul 12 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
基于python实现语音录入识别代码实例
Jan 17 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
python 6种方法实现单例模式
Dec 15 Python
python实现三次密码验证的示例
Apr 29 Python
python使用torch随机初始化参数
Mar 22 Python
Python循环之while无限迭代
Apr 30 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的几个常用数字判断函数代码
2012/04/24 PHP
基于php 随机数的深入理解
2013/06/05 PHP
php绘制一条弧线的方法
2015/01/24 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
vue cli 全面解析
2018/02/28 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
Python制作动态字符图的实例
2019/01/27 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
志愿者服务感言
2014/02/27 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
2014年副班长工作总结
2014/12/10 职场文书
论文评审意见
2015/06/05 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers
git中cherry-pick命令的使用教程
2022/06/25 Servers