Python 内置高阶函数详细
什么是高阶函数?
高阶函数是指可以接受函数作为参数或者返回函数作为结果的函数。在 Python 中,高阶函数非常常见,例如 map()
、filter()
、reduce()
等。
map()
map()
函数可以对可迭代对象中的每一个元素应用给定的函数,并返回一个新的可迭代对象。它的语法如下:
map(function, iterable, ...)
其中,function
表示要应用的函数,iterable
表示要遍历的可迭代对象。map()
函数返回的是一个 map
对象,可以通过 list()
函数将其转换为列表。
下面是对一个列表进行平方运算的示例:
lst = [1, 2, 3, 4, 5]
squared_lst = list(map(lambda x: x ** 2, lst))
print(squared_lst)
输出结果为:
[1, 4, 9, 16, 25]
filter()
filter()
函数可以从一个可迭代对象中筛选出满足给定条件的元素,并返回一个新的可迭代对象。它的语法如下:
filter(function, iterable)
其中,function
表示应用在每个元素上用于判断的函数,iterable
表示要遍历的可迭代对象。filter()
函数返回的是一个 filter
对象,可以通过 list()
函数将其转换为列表。
下面是对一个列表中进行筛选,保留所有偶数的示例:
lst = [1, 2, 3, 4, 5]
even_lst = list(filter(lambda x: x % 2 == 0, lst))
print(even_lst)
输出结果为:
[2, 4]
reduce()
reduce()
函数可以对一个可迭代对象中的元素依次应用给定的函数,最后将结果汇总为一个值,并返回该值。需要注意的是,reduce()
函数需要导入 functools
模块才能使用。它的语法如下:
reduce(function, iterable[, initializer])
其中,function
表示应用在元素上的函数,iterable
表示需要处理的可迭代对象。如果想要给汇总结果设置一个初始值,可以通过 initializer
参数进行指定。reduce()
函数返回的是一个值。
下面是对一个列表中的所有元素进行累乘运算的示例:
from functools import reduce
lst = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, lst)
print(product)
输出结果为:
120
总结
以上就是 Python 内置高阶函数的详细说明,涵盖了 map()
、filter()
、reduce()
三个函数。使用高阶函数可以使代码更加简洁、高效,同时也可以提高代码的可读性和可维护性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 内置高阶函数详细 - Python技术站