Python函数式编程介绍:lambda表达式、高阶函数的使用
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表达式和高阶函数,从而提高我们的编程效率和代码质量。
