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插入排序算法的实现代码
Nov 21 Python
跟老齐学Python之不要红头文件(2)
Sep 28 Python
python计算一个序列的平均值的方法
Jul 11 Python
python实现外卖信息管理系统
Jan 11 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
python3操作微信itchat实现发送图片
Feb 24 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
python标识符命名规范原理解析
Jan 10 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
python boto和boto3操作bucket的示例
Oct 30 Python
python分布式爬虫中消息队列知识点详解
Nov 26 Python
Python用摘要算法生成token及检验token的示例代码
Dec 01 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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python游戏地图最短路径求解
2019/01/16 Python
python五子棋游戏的设计与实现
2019/06/18 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
毕业大学生自荐信
2014/06/17 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
高考升学宴答谢词
2015/01/20 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL