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内置数据类型详解
Aug 18 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
Python创建普通菜单示例【基于win32ui模块】
May 09 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
Python模块汇总(常用第三方库)
Oct 07 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
Selenium浏览器自动化如何上传文件
Apr 06 Python
Elasticsearch 数据类型及管理
Apr 19 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制作静态网站的模板框架(一)
2006/10/09 PHP
php 设计模式之 工厂模式
2008/12/19 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
Javascript中产生固定结果的函数优化技巧
2013/01/16 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
javascript实现画板功能
2020/04/12 Javascript
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
python学生管理系统的实现
2020/04/05 Python
python实现交并比IOU教程
2020/04/16 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
C语言笔试题
2014/09/04 面试题
工商管理专业自荐信
2014/06/03 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
检讨书怎么写
2015/05/07 职场文书
入党申请书怎么写?
2019/06/21 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫
Oracle中日期的使用方法实例
2022/07/07 Oracle
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript