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

Python高阶函数-lambda,map,filter和reduce函数

发布时间:2023-06-11 02:49:03

Python是一门非常常见的编程语言,适用于多种场景。其中,高阶函数(lambda,map,filter和reduce函数)是Python语言的一个非常有用的概念,可以使得代码的可读性和复用性都大幅提高。以下将分别介绍这四个功能强大的高阶函数。

1.lambda函数

lambda函数是一种匿名函数,可以在不定义函数名称的情况下直接使用,主要针对简单的表达式。lambda函数基本语法如下:lambda 参数 : 表达式。

示例:

a = lambda x:x+1

b = a(3)

print(b)

执行结果:

4

上述代码定义了一个简单的lambda函数,该函数用于接收一个参数x,然后返回x+1。在使用lambda函数时,可以把它直接当作一个变量,使用类似于函数调用的方式来使用它。在执行a(3)时,程序会先将3赋值给x,然后对x+1进行计算,最后返回4.

2.map函数

map函数是Python的内置函数,它可以接收一个函数和一个可迭代对象,然后依次对可迭代对象中的每一个元素执行该函数,并返回一个结果列表。

示例:

def square(x):

    return x*x

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

r = map(square,l)

print(list(r))

执行结果:

[1, 4, 9, 16, 25]

上述代码定义了一个函数square,该函数接收一个参数x,并返回x的平方。接着,定义了一个列表l,每个元素代表一个数字。调用map函数,将函数square和列表l作为参数传入,返回结果保存在变量r中。最后使用list函数将r转换为列表并打印出来。

由于map函数是一个惰性求值函数,也就是说,只有在程序需要使用它返回的结果时才会开始求值。因此,如果传递给map函数的可迭代对象很大,而我们只需要其中的一部分结果时,就可以节省计算资源并提高效率。

3.filter函数

filter函数是Python的内置函数,它可以接收一个函数和一个可迭代对象,然后依次对可迭代对象中的每一个元素执行该函数,最后返回满足条件的元素列表。

示例:

def is_odd(x):

    return x % 2 == 1

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

r = filter(is_odd,l)

print(list(r))

执行结果:

[1,3,5]

上述代码定义了一个函数is_odd,该函数用于判断一个数字是否是奇数。接着,定义了一个列表l,其中包含了一些数字。调用filter函数,将函数is_odd和列表l作为参数传入,函数is_odd会返回True或False,表示该数字是否为奇数。最后使用list函数将r转换为列表并打印出来,得到的结果只包含满足条件的数字。

4.reduce函数

reduce函数是Python的内置函数,它可以接收一个函数和一个可迭代对象,然后依次对可迭代对象中的每一个元素执行该函数并将结果累积起来。

示例:

from functools import reduce

def add(x,y):

    return x+y

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

r = reduce(add,l,0)

print(r)

执行结果:

15

上述代码定义了一个函数add,用于将两个数字相加。接着,定义了一个列表l,其中包含了一些数字。调用reduce函数,将函数add和列表l作为参数传入,reduce函数会将列表中的数字依次传入add函数中进行计算,并将计算结果累积起来。最后得到的结果为15,也就是1+2+3+4+5的结果。

关键字总结:lambda函数,map函数,filter函数,reduce函数。

总结:lambda函数,map函数,filter函数,reduce函数是Python语言中高阶函数的非常重要的组成部分,它们可以大大提高代码的可读性和复用性。其中lambda函数适用于简单的表达式;map函数适用于对一系列元素进行相同的操作;filter函数适用于从一系列元素中筛选出符合要求的元素;reduce函数适用于对一系列元素进行累积计算。对这四种高阶函数的运用,能帮助Python开发者提高代码质量及执行效率,从而更快地完成编写Python小程序的任务。