高阶函数是什么?
接收函数为参数 或者把函数作为结果返回的函数就是高阶函数
比如map
map函数 返回可迭代对象源码中有写 第一个参数是一个函数 第二个是可迭代对象
还有sorted
我们以字符段长度len来排序
sorted 与 sort不同的事
sorted返回的是一个新的地址
sorted的实用性非常高而且可以配合lambda, 我在写促销引擎时候经常会用到比如以什么什么排序
如果需要降序就在加一个参数reverse = T 这个是升序 F则是降序
最为人熟知是 map filter reduce and apply apply在python3 中移除掉了
但大数map filter reduce 函数都有了更好的替代品
列表推导式 与生成器
与map 函数的效果一样
这里有个插曲是 map在python2返回的是列表 python3 是可迭代对象
这是对象的地址 既然是可迭代对象
()是之前里面加了元组 发现不行,, 只能是list
好了我们继续
过滤所有偶数
发现比filter还要简单整洁
python3 中map 与 filter返回的是生成器(一种迭代器)
reduce 经常用于求和
python2 中还是内置函数 python3 中放到了 functools
如果有条件最好使用内置函数, 在可读性与性能方面, 这是一项重大改善
这是内置函数sum