用Python编写高阶函数:map、reduce、filter的使用方法
Python语言中,高阶函数map、reduce、filter是常用的函数,可以大大简化代码的编写过程。以下是它们的使用方法。
map()函数
map()函数对一个列表或其他可迭代对象的每个元素执行相同的操作,并将操作后的结果返回为一个新的列表。它的语法格式如下:
map(function, iterable, ...)
其中,function是对每个元素要执行的操作,iterable是要操作的可迭代对象。这个函数的返回值是一个新的列表。
下面是一个将列表中的数值每个元素都平方,并返回新列表的示例:
lst = [1, 2, 3, 4, 5]
new_lst = map(lambda x: x ** 2, lst)
print(list(new_lst)) # [1, 4, 9, 16, 25]
reduce()函数
reduce()函数是对可迭代对象的所有元素执行相同的二元运算,以得到一个结果。它的语法格式如下:
reduce(function, sequence[, initial])
其中,function是一个二元运算函数,它的前两个参数是sequence序列中相邻的两个元素,initial是可选的初值,如果提供了初值,会优先使用初值作为 项参与运算。reduce()函数完成后返回一个单个的结果。
下面是一个将列表中的数值递归相加得到总和的示例:
lst = [1, 2, 3, 4, 5]
sum = reduce(lambda x, y: x + y, lst)
print(sum) # 15
filter()函数
filter()函数会根据你给出的判断函数对指定序列进行过滤,返回符合条件的元素组成的新的序列。它的语法格式如下:
filter(function, iterable)
其中,function是一个判断函数,它的参数是序列中的每个元素,返回值为True或False。返回值是过滤出来的新序列。
下面是一个过滤出一个列表中的偶数元素的示例:
lst = [1, 2, 3, 4, 5]
even_lst = filter(lambda x: x % 2 == 0, lst)
print(list(even_lst)) # [2, 4]
以上就是Python中map、reduce、filter函数的使用方法。它们是Python语言中极为强大的高阶函数,能够大大的简化代码编写过程,提高开发效率。
