高阶函数应当满意至少下面一个条件:
继续一个或多个函数参数
输出一个函数
下面用一个例子来明白高阶函数。
一、高阶函数
先看一个简朴的函数
例一:
例二:
是高阶函数,由于满意条件,返回一个函数
而且有闭包,在内层函数inc中调用了外层counter函数中的形参base。
再来看下面一个标题:
为什么?
==是值内容相称,而f1是counter函数指向的函数对象,inc标识符岁函数调用而灭亡,但inc内部所指的对象没有灭亡,被f1记取了,f2同理,假如使用了==,由于在对象上是不能举行比力的,且f1和f2所处的内存空间位置不一样。以是f1 is f2是False ,f1==f2也是false。
二、sorted原理
仿照内建函数sorted,实行实现sort函数(不能使用内建函数),且可以大概为列表元素排序。
使用reverse控制升序和降序,使用key设置一个用于比力的函数。
思绪:新建一个列表,遍历原列表,和新列表中的值依次对比,决定带插入数插入到新列表什么位置。
完备代码
三、filter过滤
filter(function,iterable)
对可迭代对象遍历,返回一个迭代器
function是一个参数的函数,且返回应当是bool范例,或返回其等效布尔值
function假如是None,可迭代对象每一个元素自身等效布尔值
如:
四、map映射
map(function,*iterable)
对多个可迭代元素按照指定的函数举行映射
返回一个迭代器
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |