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

Python函数式编程介绍:lambda表达式、高阶函数的使用

发布时间:2023-06-26 06:23:06

Python函数式编程是指一种使用函数来进行程序设计的编程方式,它强调对函数的使用和引用,使用函数作为“一等公民”(first-class citizen)。

在Python中,函数式编程有两个重要的概念:lambda表达式和高阶函数。

一、lambda表达式

lambda是Python中用来创建匿名函数的关键字,即没有名称的函数。

lambda表达式的语法格式为:lambda arguments: expression。

其中,arguments表示函数的参数,可以为一个或多个;expression表示函数的返回值,它只能有一个。

例如:

add = lambda x, y: x + y
print(add(3, 5))  #输出8

上面的代码中,我们使用lambda创建了一个名为add的匿名函数,它有两个参数x和y,表达式为x + y。

lambda表达式使用起来非常方便,可以节省函数定义的步骤。

二、高阶函数

高阶函数指的是接收一个或多个函数作为参数,并返回一个函数的函数。

Python中有很多内置的高阶函数,如filter()、map()、reduce()等。

1. filter()

filter()函数用于从一个序列中过滤出符合条件的元素。

其语法格式为:filter(function, iterable)。

其中,function是一个返回bool的函数,iterable是一个可迭代对象。

例如:

lst = [1, 2, 3, 4, 5, 6]

result = filter(lambda x:x%2==0, lst)
print(list(result))  # 输出[2, 4, 6]

上面的代码中,我们使用lambda表达式定义了一个函数,用于判断一个数是否为偶数。然后通过filter()函数筛选出了lst中的偶数。

2. map()

map()函数用于对一个序列中的每个元素进行操作,并返回一个新的序列。

其语法格式为:map(function, iterable)。

其中,function是一个对每个元素进行操作的函数,iterable是一个可迭代对象。

例如:

lst = [1, 2, 3, 4, 5, 6]

result = map(lambda x:x**2, lst)
print(list(result))  # 输出[1, 4, 9, 16, 25, 36]

上面的代码中,我们使用lambda表达式定义了一个函数,用于对一个数求平方。然后通过map()函数对lst中的每个元素求平方。

3. reduce()

reduce()函数用于对一个序列中的元素进行累积操作,并返回一个结果。

其语法格式为:reduce(function, iterable)。

其中,function是一个对两个元素进行操作的函数,iterable是一个可迭代对象。

例如:

from functools import reduce

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

result = reduce(lambda x,y:x*y, lst)
print(result)  # 输出120

上面的代码中,我们使用lambda表达式定义了一个函数,用于将两个数相乘。然后通过reduce()函数对lst中的每个元素进行累乘操作。

总结

lambda表达式和高阶函数是Python函数式编程中非常重要的概念,它们可以帮助我们更加简洁和高效地实现程序。

在实际编程中,我们可以灵活地运用lambda表达式和高阶函数,从而提高我们的编程效率和代码质量。