欢迎访问宙启技术站
智能推送

Python函数:lambda函数与高阶函数

发布时间:2023-06-14 11:32:52

Python 中函数是一等公民,函数可以像其他对象一样被传递、引用和赋值。Python 还支持 lambda 函数和高阶函数。

# Lambda 函数

Python 中,lambda 函数是一种匿名函数。

lambda 函数的语法如下:

    lambda arguments: expression

其中,arguments 是函数的入口参数,expression 是函数的返回结果。函数体只有一行代码。

以下是 lambda 函数的例子:

    # 传递一个 lambda 函数

    def apply_func(func, value):

        return func(value)

    

    result = apply_func(lambda x: x * 2, 5)

    print(result) # 输出结果为 10

在这个例子中,我们定义了一个函数 apply_func。它接受两个参数:一个函数和一个值。函数会返回 func 和 value 的结果。我们使用 lambda 函数作为参数,这个 lambda 函数会将传递进来的值乘以 2。

Lambda 函数通常用于简短的函数,它们可以被用在需要一个简单的函数,但是不想花费时间定义一个完整的函数的情况下。

# 高阶函数

高阶函数是指那些能够接受函数作为参数或将函数作为返回值的函数。

以下是高阶函数的例子:

    def apply_func(func, value):

        return func(value)

    

    def add_one(x):

        return x + 1

    

    def times_three(x):

        return x * 3

    

    result = apply_func(add_one, 5)

    print(result) # 输出结果为 6

    

    result = apply_func(times_three, 5)

    print(result) # 输出结果为 15

在这个例子中,apply_func 函数可以接受任何函数作为参数,它会将这个函数和一个 value 参数一起传递给 apply_func 作为参数,来执行这个函数,并返回结果。

我们同时定义了两个简单的函数:add_one 和 times_three。这两个函数都只是对传递进来的参数进行了一些简单的数学运算。

高阶函数可以方便地建立复杂的函数或者将一些通用的逻辑封装成函数以便复用。

例如,我们可以使用高阶函数来返回一个函数,这个函数会将另一个函数应用到一个列表的每个元素上。以下是示例:

    def apply_func(func, arr):

        return [func(x) for x in arr]

    

    arr = [1, 2, 3, 4, 5]

    result = apply_func(lambda x: x * 2, arr)

    print(result) # 输出结果为 [2, 4, 6, 8, 10]

在这个例子中,我们定义了一个函数 apply_func,它可以接受一个列表和一个函数作为参数。函数 apply_func 会返回一个列表,这个列表中的每个元素都是将传递给 apply_func 的函数应用到列表参数 arr 中的对应元素上的结果。

这个函数使用了匿名函数 lambda x: x * 2 作为参数,在每个元素上乘以 2。最后结果是 [2, 4, 6, 8, 10]。

高阶函数可以使得代码更加简洁,通用并且容易调试,因此在 Python 中使用较多。

在 Python 中,lambda 函数和高阶函数结合使用,可以实现很多强大的功能。可能这些功能在其他编程语言中需要使用很多代码来完成,但在 Python 中只需要一些简单的代码即可实现。因此,学习和熟练使用这些特性可以提高你编写 Python 代码的效率。