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语句、函数与方法的使用技巧总结
Dec 08 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
使用requests库制作Python爬虫
Mar 25 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
python框架Django实战商城项目之工程搭建过程图文详解
Mar 09 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 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/01/10 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
jQuery实现的网格线绘制方法
2016/06/20 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
vue二级路由设置方法
2018/02/09 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python实现机器人卡牌
2019/10/06 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
Python通过字典映射函数实现switch
2020/11/06 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
Java面试题汇总
2015/12/06 面试题
行政内勤岗位职责
2014/04/07 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
房地产推广策划方案
2014/05/19 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
导游词之长城八达岭
2019/09/24 职场文书