首页
学习
活动
专区
圈层
工具
发布
30 篇文章

Python基础语法-函数-高阶函数(一)

什么是高阶函数

在 Python 中,函数是一等对象(first-class object),可以像其他对象一样被传递、赋值、作为参数或返回值。高阶函数(higher-order function)是指接受一个或多个函数作为参数,并且/或者返回一个函数作为结果的函数。在函数式编程中,高阶函数是一个非常重要的概念。

常见的高阶函数有 map()filter()reduce()sorted() 等,它们都是 Python 内置函数。

map() 函数

map() 函数接受一个函数和一个可迭代对象作为参数,将该函数应用于可迭代对象中的每个元素,并返回一个新的可迭代对象,其中每个元素都是应用该函数后的结果。

例如,我们可以将一个列表中的所有元素转换为它们的平方值:

代码语言:javascript
复制
def square(x):
    return x ** 2

lst = [1, 2, 3, 4, 5]
result = map(square, lst)
print(list(result))   # 输出 [1, 4, 9, 16, 25]

在这个例子中,square() 函数接受一个参数 x,返回 x 的平方。lst 是一个包含整数的列表。我们将 square() 函数作为参数传递给 map() 函数,map() 函数将 square() 应用于列表中的每个元素,并返回一个新的可迭代对象。我们将结果转换为列表并打印出来,输出为 [1, 4, 9, 16, 25]

filter() 函数

filter() 函数接受一个函数和一个可迭代对象作为参数,该函数应该返回一个布尔值。filter() 函数返回一个新的可迭代对象,其中仅包含满足条件的元素。

例如,我们可以从一个列表中过滤掉所有的偶数:

代码语言:javascript
复制
def is_odd(x):
    return x % 2 != 0

lst = [1, 2, 3, 4, 5]
result = filter(is_odd, lst)
print(list(result))   # 输出 [1, 3, 5]

在这个例子中,is_odd() 函数接受一个参数 x,返回 x 是否为奇数。lst 是一个包含整数的列表。我们将 is_odd() 函数作为参数传递给 filter() 函数,filter() 函数将 is_odd() 应用于列表中的每个元素,并返回一个新的可迭代对象,其中仅包含满足条件的元素。我们将结果转换为列表并打印出来,输出为 [1, 3, 5]

下一篇
举报
领券