python:map、filter、reduce函数使用
1 前言
Python的map、filter、reduce函数使用说明。
高阶函数概念:
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。
实质上,函数map,filter和reduce均为高阶函数,它们的输入参数为函数和可迭代对象(list,tumple等),具体形式如下:
map(func, list_data)
filter(func, list_data)
reduce(func, list_data)
2 使用
2.1 map:
map(function,seq[,seq2]) 接收两个参数,第一个是function,第二个是序列:(使用上类似java的jdk8的Stream API的map方法进行值的映射,java的Stream API还有一个flatMap方法,可以扁平式一对多拆分映射)
使用如下,对list中每个值进行平方计算:
nums = [1, 2, 3]
new_nums = list(map(lambda x: x ** 2, nums))
print(new_nums)
# [1, 4, 9]
2.2 filter:
filter(function, seq)接收两个参数,基本作用是对可迭代对象中的元素进行过滤;并返回一个新的可迭代filter对象(使用上类似java的jdk8的Stream API的filter方法,筛选值,返回true的保留,返回false的对应值过滤):
使用如下,保留list中值的平方结果,不为自身的值:
nums = [