高阶函数:一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数
abs :绝对值函数
map(function, iterable, …)
功能
将第一个参数 function 依次作用在参数可迭代对象中的每一个元素上,返回包含每次 function 函数返回值的新迭代器
参数
function – 函数,有两个参数
iterable – 一个或多个可迭代对象(如:序列)
返回值
Python 3.x 返回迭代器
def f(x):
return x*x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list®)
运行结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
reduce(function, iterable[, initializer])
功能
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
其效果类似:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
参数
function – 函数,有两个参数
iterable – 可迭代对象
initializer – 可选,初始参数
返回值
返回函数计算结果。
from functools import reduce
def add(x, y):
return x + y
r = reduce(add, [1, 3, 5, 7, 9])
print®
运行结果:
25
filter(function, iterable)
功能
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新迭代器对象中
参数
function – 判断函数
iterable – 可迭代对象(如:序列)
返回值
返回一个迭代器对象
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
运行结果:
[1, 3, 5, 7, 9]
sorted(iterable, key=abs, reverse=False)
功能
对所有可迭代的对象进行排序操作
参数
iterable – 可迭代对象。
key – key指定的函数将作用于可迭代对象上的每一个元素,并根据key函数返回的结果进行排序
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)
返回值
返回重新排序的列表
print(sorted([36, 5, -12, 9, -21]))
运行结果:[-21, -12, 5, 9, 36]
print(sorted([36, 5, -12, 9, -21], key=abs))
#abs 绝对值函数
运行结果:[5, 9, -12, -21, 36]
07.返回函数:高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。
08.闭包的定义:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
09.装饰器:装饰器是在函数调用之上的修饰。这些修饰仅是当声明一个函数或者方法的时候,才会应用的额外调用。
装饰器的语法以@开头,接着是装饰器函数的名字和可选的参数。紧跟着装饰器声明的是被修饰的函数和装饰函数的可选参数。
10.匿名函数:变量 = lambda 参数:表达式(返回值) print(变量(实参))
11.递归函数:在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
12.偏函数:由functools.partial创建,它的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。