匿名函数与偏函数

匿名函数

Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下:

lambda arg1, arg2, … : expression
例如;

add = lambda a,b=2 : a+bprint(add(3))       # 5
print(add(3, 10))   # 13

匿名函数具有比较浓郁的函数式编程风格,例如:

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print filter(lambda x: x % 3 == 0, foo)
print map(lambda x: x % 3 == 0, foo)

使用lambda表达式,可以避免定义函数,从而使得代码更简洁。


偏函数

Python中的函数参数可以带默认值,这样能够降低函数调用的复杂度,例如:

def add(a, b, c=100):return a+b+cprint(add(40, 30))  # 170

当函数的参数个数太多,需要简化时,使用偏函数(functools.partial)可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。

from functools import partialdef add(a, b, c=100):return a+b+cplus = partial(add, c=100)print(plus(40, 30))     # 170
print(plus(-20, 30))    # 110

上面的例子中partial(add, c=100)使用了关键字参数c=100,如果只是简单的使用partial(add, 100),那么100做为位置参数,会被认为是参数a的固定值,。例如:

from functools import partialdef add(a, b, c=100):return a+b+cplus = partial(add, 100)print(plus(40))     # 240print(plus(40, 50)) # 190

这里,plus(40),传入的40会被赋值给b,而c使用默认参数100;

转载于:https://www.cnblogs.com/chenny7/p/4218426.html

Python 之匿名函数和偏函数相关推荐

  1. python偏函数和高阶函数_【Python入门】8.高阶函数之 匿名函数和偏函数

    目录 高阶函数 匿名函数 lambda 偏函数 高阶函数 匿名函数 lambda lambda,即希腊字母λ.顾名思义,匿名函数没有函数名,在运用时采取lambda x : ...的方式,如lambd ...

  2. python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数

    跟光磊学Python开发-匿名函数函数和高阶函数 跟光磊学Python开发-匿名函数函数和高阶函数跟光磊学Python开发 匿名函数 匿名函数就是函数定义时没有名字的函数,也称为匿名表达式. 普通函数 ...

  3. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  4. python的匿名函数返回值_Python匿名函数返回值输出问题望指点

    该段的匿名函数作为返回值返回,那请问可以输出对应的值吗?小白途中!望各位指点! def build(x, y): return lambda: x * x + y * y 1.匿名函数在一定意义上应该 ...

  5. python 中匿名函数的使用

    一.概述 在python3中的匿名函数是用来处理一些简单的逻辑,简单的功能的,这样可以节省栈内存,在使用场景中,很多情况是用于某个函数的参数,或者一些只需要一句话的逻辑,接下来让我们看看匿名函数的使用 ...

  6. Python的匿名函数

    Python的匿名函数 一.前言 二.匿名函数语法格式 三.匿名函数实例应用 一.前言   匿名函数是指没有名字的函数,它主要应用在需要一个函数.但是又不想费神去命名这个函数的场合.通常情况下,这样的 ...

  7. python lambda_Python 匿名函数 lambda

    可以用 lambda 关键字来创建一个匿名函数.lambda 函数可以在需要函数对象的任何地方使用.从语义上来说,它们只是正常函数定义的语法糖. 名词 Lambda( /ˈlæmdə/ 大写Λ,小写λ ...

  8. python中匿名函数的作用_Python 中的匿名函数,你会用吗

    原标题:Python 中的匿名函数,你会用吗 概念 我们从一个例子引入. 这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序.如果原列表是 ['abc', 'g', 'def'],则 ...

  9. python阶乘匿名函数_python的高阶函数与匿名函数

    一.高阶函数的定义 高阶函数:就是把函数当成参数传递的一种函数,例如: defadd(x,y,f):return f(x)+f(y)print(add(-8,11,abs) 结果:19 解释: 1.调 ...

最新文章

  1. 超越卷积、自注意力机制:强大的神经网络新算子involution
  2. Leangoo敏捷工具企业版-企业管理
  3. XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox
  4. 如何分表分库 Mycat 与shadingjdbc 区别? Mycat 是基于服务器端的形式实现数据库代理 基于服务器端的形式 改写sql语句 shadingjdbc 基于客户端 改写sql语
  5. oracle中右表有过滤条件的left outer join
  6. 进程调度:优先数法与轮转法的实现
  7. LSTM模型在问答系统中的应用
  8. 基础 | 这波编程基础绝了!快来学习!
  9. 在Intellij idea中快速重写父类方法
  10. 苹果耳机无线真假测试软件,辨认苹果耳机真假,就这六步。
  11. Java取交集方法retainAll()
  12. Python 的输出矩阵的一些常用设置
  13. 1. 什么是字符串(str)
  14. HDU 5336 XYZ and Drops (模拟+搜索,详解)
  15. 最新wxid转扫一扫添加好友
  16. windows防火墙开端口失败
  17. 目标检测YOLO实战应用案例100讲-自动驾驶场景下的三维目标检测技术研究
  18. 各种Java游戏引擎简介
  19. 数字图像处理之频域滤波
  20. 橄榄山BIM大学论坛正式启用,有Revit二次开发专版。可去那里问问题 http://bbs.glsbim.com

热门文章

  1. MATLAB优化编码
  2. BorderLayout布局管理器设置3个按钮
  3. python标准库os.path中_Python零基础入门学习19:常用标准库之os.path子库
  4. arr数组怎么取值_【JavaScript】Array数组常规使用小结(持续更新......)
  5. java中的多态性_[转载] c++多态与java多态性_Java中的多态性
  6. Python学习入门基础教程(learning Python)--5.4 Python读文件详解
  7. winform 根据NAME查找控件
  8. 如何安装inf类型驱动程序 inno
  9. WIZnet 在 Embedded World 2013展会中的展示
  10. Linux内核源代码分析——中断(一鞭一条痕)(下)