五种常见Python高阶函数介绍
在Python中,高阶函数可以定义在函数内部,也可以定义在模块或类中。它们可以接受其他函数为参数,并返回函数作为结果。这种函数式编程语言被广泛使用,它可以帮助我们编写更简洁的代码、更有效率的程序并减少程序的复杂性。
在Python中有许多常见的高阶函数,其中包括:
1. map()
map()函数是Python中非常常见的高阶函数之一。它将一个函数应用于序列中的每个元素,并返回一个包含计算结果的新列表。map()函数接受两个参数, 个是一个函数,第二个是一个可迭代对象(比如说列表、字符串、元组等等)。
例如,我们可以将一个函数应用于列表中的每个元素,从而创建一个新的列表:
def add_two(x):
return x + 2
nums = [1, 2, 3]
result = map(add_two, nums)
print(list(result))
在这个例子中,我们定义了一个函数add_two(),这个函数接受一个参数并返回参数值加上2的结果。我们还定义了一个包含三个元素的列表nums。接着,我们通过调用map()函数并将add_two函数和nums列表传递给它来创建了一个新列表result。最后,我们打印了这个新列表。
2. filter()
filter()函数也是Python中非常常见的高阶函数之一。它将一个函数应用于序列中的每个元素,并返回一个包含所有计算结果为True的元素的新列表。filter()函数接受两个参数, 个是一个函数,第二个是一个可迭代对象。
例如,我们可以将一个函数应用于列表中的每个元素,并返回包含所有大于2的元素的列表:
def greater_than_two(x):
return x > 2
nums = [1, 2, 3, 4]
result = filter(greater_than_two, nums)
print(list(result))
在这个例子中,我们定义了一个函数greater_than_two(),这个函数接受一个参数并返回True如果参数大于2,否则返回False。我们还定义了一个包含四个元素的列表nums。接着,我们通过调用filter()函数并将greater_than_two函数和nums列表传递给它来创建了一个新列表result。最后,我们打印了这个新列表。
3. reduce()
reduce()函数将一个可迭代对象中的每个元素应用于一个二元函数,并返回一个结果。reduce()函数接受两个参数, 个是一个二元函数,第二个是一个可迭代对象。
例如,我们可以将一个函数应用于列表中的每个元素,以计算它们的总和:
from functools import reduce
def add_nums(x, y):
return x + y
nums = [1, 2, 3, 4]
result = reduce(add_nums, nums)
print(result)
在这个例子中,我们定义了一个函数add_nums(),这个函数接受两个参数,将它们相加并返回结果。我们还定义了一个包含四个元素的列表nums。接着,我们通过调用reduce()函数并将add_nums函数和nums列表传递给它来计算并打印一个结果值。
4. sorted()
sorted()函数是Python中非常常见的高阶函数之一。它将一个可迭代对象中的每个元素排序,并返回包含已排序元素的新列表。sorted()函数接受一个可迭代对象和一个关键字参数,该参数指定要排序的关键字。
例如,我们可以将一个列表中的元素按照其长度进行排序:
words = ['apple', 'banana', 'orange', 'kiwi']
result = sorted(words, key=len)
print(result)
在这个例子中,我们定义了一个包含四个元素的列表words。接着,我们通过调用sorted()函数并将words和关键字参数key=len传递给它来创建一个新列表result,该列表中包含每个元素按照其长度排序后的结果。最后,我们打印了这个新列表。
5. zip()
zip()函数将多个可迭代对象中的元素组合成为一系列元组,并返回结果。zip()函数接受任意数量的参数,每个参数都必须是一个可迭代对象。
例如,我们可以将三个列表中的元素逐对组合:
x = [1, 2, 3]
y = ['a', 'b', 'c']
z = [True, False, True]
result = zip(x, y, z)
print(list(result))
在这个例子中,我们定义了三个包含三个元素的列表x、y和z。接着,我们通过调用zip()函数并传递x、y和z列表来创建一个新的元组列表result,该列表包含每个列表中的元素按照顺序逐对组合后的结果。最后,我们打印了这个新列表。
总结
在Python中,高阶函数可以帮助我们编写更简洁,更有效率的程序,并减少程序的复杂性。除了map()、filter()、reduce()、sorted()和zip()之外,还有许多其他常见的高阶函数。有了这些函数,我们可以更轻松地进行函数式编程,从而更轻松地构建高质量的应用程序。
