高阶函数
用函数作为变量的函数称为高阶函数(无论这个变量当做入参,还是当做返回值,都可称之为高阶函数)。
>>> def test(a, b, f): ... return f(a) + f(b) ... >>> test(3, -3, abs) 6
python有几个内置的高阶函数:
map(function, list) 返回一个列表,列表里每个值分别是原始列表对应位置的值作为参数,函数function的返回值。
>>> map(abs, [-1, -2, -3])
[1, 2, 3]
reduce(function, list) 返回一个值,该值是列表中每两个作为参数,函数function最终的返回值,支持第三个可选的参数,设定初始值。
>>> def add(a, b): ... return a + b ... >>> reduce(add, [1, 2, 3]) 6
filter(function, list) 返回列表,把每个值放到function,返回True放到返回值列表里,返回False则不放。
>>> def radix(num): ... return bool(num % 2) ... >>> filter(radix, [1,2,3,4,5,6]) [1, 3, 5]
sorted