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

目录

高阶函数

匿名函数 lambda

偏函数

高阶函数

匿名函数 lambda

lambda,即希腊字母λ。顾名思义,匿名函数没有函数名,在运用时采取lambda x : ...的方式,如lambda x : x + x

相当于def f(x):

return x + x

如在结合map( )函数生成序列时就可以这样写。>>>list(map(lambda x: x + x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))

[2, 4, 6, 8, 10, 12, 14, 16, 18]

很多时候并不需要显义地定义一个函数,传入一个匿名函数会更加方便。当然,匿名函数也是一个函数对象,可以赋值给变量,也可以作为返回值返回。

偏函数

偏函数,可以通过设定函数的默认参数值来降低函数的调用难度。

我们都知道,在定义函数的时候可以设定默认参数值来简化函数的调用难度,而偏函数就是可以把函数的某一参数改为默认参数,而不需要修改函数定义。

如int( )函数可以把字符串转化为整数,其实int( )函数还有一个参数base,默认为10即默认按10进制转化。>>>int('1234')                                   #按十进制转换为十进制整数1234>>>int('1234', base=8)                           #按八进制转换为十进制整数668>>>int('110011101', base=2)                      #按二进制转换为十进制整数413

如果我们需要转换大量二进制的字符串时,就可以偏函数来降低函数的调用难度。>>>import functools>>>int2 = functools.partial(int,base=2)>>>int2('11000')24

用functools.partial( )来建立一个偏函数int2( ),此时int2( )就是默认按二进制来转换字符串的新函数了。

实际上,在建立偏函数时,可以接受函数对象,*args可变参数,**kw关键字参数三个参数。>>>int2 = functools.partial(int,'11000',base=2)>>>int2()24

这样int2( )就变成按二进制来转换'11000'了。在一些要传入多个参数的函数中,我们可以设定默认传入一些可变参数来简化函数的调用。>>>max2 = functools.partial(max, 10)                #传入默认参数10>>>max2(1, 2, 3)                                    #相当于在传入参数的最左边还有一个参数1010

作者:三贝_

链接:https://www.jianshu.com/p/afc8a03cba33

x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言为什么要建项目,一个C语言小项目为什么都说牛逼

原标题:一个C语言小项目为什么都说牛逼意在鼓励C语言学者。更有兴趣,学习更富有创业和乐趣!推荐加学习交流群:658807522 可以在一起学习交流,既是参赛选手,又是学者,也可以先学习再参赛&#xf…

python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

作者:Przemyslaw Piotrowski首先,熟悉 Oracle-Python连接性的基本概念2007 年 9 月发布参见系列目录在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口。数据库 API(在此例中为 OracleAPI)就是一个例子。使用 Computron…

大学c语言项目,项目大学C语言程序设计期末复习重点.doc

期末复习课笔试试卷基本情况1、单项选择(本题共15个小题,每题2分。30分)在四个备选答案中选择一个正确的。答案唯一。2、阅读程序选择运行结果(本题共有8个小题,每个题3分。24分)考核基本运算。答案唯一。3、阅读程序并填空(本题共有6个小题,…

单片机c语言 oxfe,AVR单片机入门及C语言高效设计实践(五)

ATMEAGl6L的中断系统什么是“中断”?顾名思义中断就是中断某一工作过程去处理一些与本工作过程无关或间接相关或临时发生的事件,处理完后,则继续原工作过程。比如:你在看书,电话响了,你在书上做个记号后去接电话&…

python中property魔法方法原理_Python类中的魔法方法之 __slots__原理解析

在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性。每次实例化一个对象python都会分配一个固定大小内存的字典来保存属性,如果对象很多的情况下会浪费内存空间。可…

c语言 4则运算符,C语言学习之路之四-----------C语言的运算符与表达式

C语言的运算符与表达式运算符与表达式C语言的运算符又称为操作符,是数据间进行运算的符号。C语言的运算符按运算类型可分为赋值运算符、算术运算符、逻辑运算符、关系运算符、位运算符、指针运算符和取成员运算符等;按运算对象(又称为操作数)的个数又可分…

python中if控制语句_Python中流程控制语句之IF语句

生活中经常遇到的各种选择和判断在程序中也会遇到,比如玩色子,猜大小,比如选择哪条路回家?Python程序中同样也会遇到。IF语句就是用作条件判断的控制语句。语法一:if 条件:  # 引号是将条件与结果分开结果1 #tab键&a…

android 生成 资源文件,SVG-Android开源库——SVG生成Vector资源文件的编辑预览工具...

Vector矢量图在Android项目中的利用愈来愈广泛,但是如果你想用Android Studio自带的工具将SVG图片转化成Vector资源文件却是相当麻烦,首先能支持的SVG规范较少,其次操作流程麻烦。而另外一种方式就是通过http://inloop.github.io/svg2android…

python常用序列类型_Python基础-序列类型的常用方法

python 是一门编程语言,是一门完全面向对象的编程语言。各序列类型的自带方法序列的常用方法元组的常用方法字符串的常用方法①列表的常用方法L.append(obj)>>>在列表末尾添加新的对象L.clear()>>>清空整个列表L.copy()>>>复制列表L.cou…

android 内存占用工具,Android系统检测程序内存占用各种方法

1.检查系统总内存liuhxuc ~ $ adb shell cat /proc/meminfoMemTotal: 840868 kBMemFree: 457344 kBBuffers: 1744 kBCached: 203064 kBSwapCached: 0 kBActive: 234932 kBInactive: 129644 kBActive(anon)…

android微信朋友圈相册背景,Android 仿微信朋友圈图片拖拽返回

目前的app的动画效果是越来越炫了,很多主流app的图片预览返回都有类似功能,比较常见的是ios自带相册,微信朋友圈等等。自己项目中也有类似功能,最近整理了一下这个功能的代码,做个笔记记录,有兴趣的朋友可以…

python文本筛选html_python 正则表达式过滤文本中的html标签 源代码解析

#py2.7#coding:utf-8import reimport osimport chardetdef filter_tag(htmlstr):re_cdata re.compile(^>]*>, re.I)re_script re.compile(]*>[^, re.I) #过滤脚本re_style re.compile(]*>[^, re.I) #过滤stylere_br re.compile()re_h re.compile(?\w[^>]*…

erp采购总监个人总结_《用友 ERP 培训教程:财务核算/供应链管理/物料需求计划》ERP概述 : ERP基础知识...

第1章 ERP概述本章重点_- _ERP概要_- _ERP实施成功的必要条件_- _ERP几个重要的名词解释用友ERP-U8(V8 .72)简介及功能按钮说明1.1 ERP基础知识1.1.1 ERP基本概念ERP(Enterprise Resources Planning)中文叫做企业资源规划&…

android studio1.5 for mac,适用于Mac的Android Studio 1.5.x随机崩溃

适用于Mac的Android Studio 1.5(AI-141.2456560)经常随机崩溃.我正在使用Macbook Pro 15“Retina(2105年中期)和Mac OS X 10.11.1真的很烦人.你有过这些崩溃的经历吗?你知道任何解决方法吗?提前致谢.这是崩溃日志的标题:Process: studio [425…

python 八大排序_八大排序算法的 Python 实现

1、插入排序def insert_sort(lists):# 插入排序count len(lists)for i in range(1, count):key lists[i]j i - 1while j > 0:if lists[j] > key:lists[j 1] lists[j]lists[j] keyj - 1return lists2、希尔排序def shell_sort(lists):# 希尔排序count len(lists)st…

soc 设计soc设计 uml实务手册_企业内训“软件需求设计建模方法学全程实例剖析”训练方案(2020年)...

※训练介绍※利润需求-设计。软件开发中,需求是解决“系统怎样好卖”的问题,设计是解决“降低开发成本”的问题。要迈向“低成本制造好卖的产品”的境界,并非喊喊口号就能达到。口号:我们只做最重要的需求,尽快把系统推…

鸿蒙分布式通讯子系统,【鸿蒙】分布式通信子系统--让华为手机发现Hi3861开发板...

目录:工具步骤运行结果工具:1. 华为手机,需要有多设备协同功能。在设置->更多连接->多设备协同,查看是否有多设备协同功能,此功能使用的就是coap协议。2. Hi3861开发板步骤:1. 修改源码,…

python2.7 pyqt4创建qtapp_python-2.7 – 向TabWidget pyqt4添加加号按钮

以下代码提供了一个可以动态添加选项卡的选项卡界面import sys,randomfrom PyQt4 import QtCore,QtGuiclass TabContainer(QtGui.QWidget):def __init__(self):super(TabContainer,self).__init__()self.next_item_is_table Falseself.initUI()def initUI(self):self.setGeome…

html怎样在一张图片里写字,用HTML代码在图片上写字

效果一:文字居中cellSpacing0 cellPadding0 width410 aligncenterbackgroundhttp://bbs.guqu.net/UploadFile/2005-1/200512211045825.gifborder0> type"vertical" spacer>size7>百年爱情文字在图片中的位置。由中的aligncenter决定。center&…

winform 统计大量数据重复的元素个数_DAY10——推断统计之概率与概率分布:常见的离散型概率分布...

「数学期望——某件事情大量发生之后的平均结果」----------------分割又分割----------------------昨天文章排版出了问题,今天重新排版。数据的三个统计维度:集中程度、离散程度、分布情况。集中程度:期望离散程度:方差、标准差…