Python中的高阶函数及其应用范例
什么是高阶函数?
高阶函数是指一个函数接收另一个函数作为参数或返回一个函数作为结果。在Python中,函数是一等公民,因此可以像任何其他对象一样使用,比如可以将它们存储在变量中,将它们作为参数传递给其他函数,或从函数中返回另一个函数。
高阶函数的优点是它们的灵活性。它们允许我们编写更加通用和可重用的代码,因为它们对函数的解耦使得代码更易于维护和扩展。
下面是Python中常见的几种高阶函数以及它们的应用范例。
map
map函数接收一个函数和一个可迭代对象作为参数,并返回一个新的可迭代对象,其中每个元素是将给定函数应用于原始可迭代对象的相应元素的结果。
一些例子:
将字符串转为小写:map(str.lower, ['HELLO', 'WORLD', 'PYTHON']),
过滤掉所有偶数:map(lambda x: x if x % 2 != 0 else None, [1, 2, 3, 4, 5]),
计算所有数字的平方:map(lambda x: x ** 2, [1, 2, 3, 4, 5])
filter
filter函数接收一个函数和一个可迭代对象作为参数,并返回一个新的可迭代对象,其中只包含应用给定函数返回True的元素。
一些例子:
过滤掉所有小于10的数字:filter(lambda x: x >= 10, [5, 10, 15, 20, 25]),
将列表中的所有空字符串都过滤掉:filter(None, ['hello', '', 'world', '', 'python'])
reduce
reduce函数接收一个函数和一个可迭代对象作为参数,然后将该函数应用于迭代对象中的第一个元素和第二个元素,然后将结果应用于下一个元素,直到迭代结束为止,并返回最终结果。
一些例子:
计算列表中所有数字的和:reduce(lambda x, y: x + y, [1, 2, 3, 4, 5]),
将一个列表连接成一个字符串:reduce(lambda x, y: x + y, ['hello', 'world', 'python'])
sorted
sorted函数对一个可迭代对象进行排序并返回一个排序后的列表。它可以接收一个可选参数key,用于指定要排序的关键字。
一些例子:
对一个列表进行排序:sorted([4, 2, 1, 3]),
按字符串长度对列表中的字符串进行排序:sorted(['hello', 'world', 'python'], key=len)
