高阶函数
就是在一个函数里,参数可以传递函数,这样的函数就叫高阶函数,往往可以用来简化复杂的运算。
- map/filter/sorted 是Python的
内置函数
, 可以直接使用
map :用于序列迭代
map()
函数入参是一个函数和序列,传入的函数依次作用于序列中的每个元素,返回一个新的Iterator
, 可以使用list()
函数作用于值,使结果返回为list。
def test(x):
return x.upper()
s = map(test, ['a', 'b', 'c'])
print (s)
<map at 0x7f11e540ceb8>
print (list(s))
['A', 'B', 'C']
filter:用于序列过滤
filter()
函数入参是一个函数和序列, 如下匿名函数和序列'abcd'。传入的函数依次作用于序列的每个元素, 结果为True
则返回该元素,否则丢弃。返回值是一个Iterator
, 可以使用list()
函数作用于值,使结果返回为list。
In [1]: result = filter(lambda x: x == 'a', 'abcd')
In [2]: result
Out[2]: <filter at 0x7f11ce77df60>
In [3]: list(result)
Out[3]: ['a']
sorted:用于可迭代对象
排序
reduce
reduce
和上面三个函数有个不同点,它不是内置函数, 需要导入functools
模块才能使用。
见python 模块 - functools
网友评论