高阶函数一般指能接收另一个函数作为参数的函数。执行完成后,返回值是迭代器,节省内存。都支持搭配 lambda 匿名函数使用。 map为转换加工类高阶内置函数,filter为条件筛选类高阶内置函数。
1. map():加工转换,不丢弃元素
给每一个元素做统一运算/处理,输入多少个,输出就多少个,只会改变元素内容,不会删减。
语法:map(处理函数, 可迭代对象)
函数返回:处理后的新值
示例:所有数字乘2
# [2,4,6,8] 4个进,4个出
2. filter():筛选过滤,保留符合条件的元素
判断元素是否满足条件,只留下返回True的元素,不修改元素本身,会删减数据。
语法:filter(判断函数, 可迭代对象)
函数返回:布尔值 True / False
示例:只保留大于2的数字
# [3,4] 4个进,只剩2个
3. 关键差异对照表