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

Python中的高阶函数及使用技巧

发布时间:2023-05-26 08:04:31

Python中的高阶函数是一种非常强大的编程技巧,可以大大简化代码的编写和维护。高阶函数是指可以接受函数作为参数,或返回函数作为结果的函数,常见的高阶函数有map、reduce、filter、sorted等。

1. map函数

map函数可以将一个函数应用于一个序列的每个元素上,并返回一个新的序列。

例如,将一个列表中的每个元素都平方:

lst = [1, 2, 3, 4, 5]
squared_lst = map(lambda x: x*x, lst)
print(list(squared_lst)) # [1, 4, 9, 16, 25]

2. reduce函数

reduce函数可以将一个函数应用于一个序列的每个元素,并将结果累加起来。

例如,将一个列表中的所有元素相加:

from functools import reduce

lst = [1, 2, 3, 4, 5]
sum_lst = reduce(lambda x, y: x+y, lst)
print(sum_lst) # 15

3. filter函数

filter函数可以筛选出符合条件的元素并返回一个新的序列。

例如,从一个列表中筛选出所有偶数:

lst = [1, 2, 3, 4, 5]
even_lst = filter(lambda x: x%2==0, lst)
print(list(even_lst)) # [2, 4]

4. sorted函数

sorted函数可以对一个序列进行排序,并返回排序后的结果。

例如,将一个列表按照元素长度进行排序:

lst = ['apple', 'pear', 'banana', 'kiwi']
sorted_lst = sorted(lst, key=lambda x: len(x))
print(sorted_lst) # ['kiwi', 'pear', 'apple', 'banana']

除了上述常见的高阶函数之外,还有一些更加强大的高阶函数,例如partial函数和functools模块中的其他函数。

5. partial函数

partial函数可以将一个函数的某些参数先固定住,返回一个新的函数,待后续调用时只需要传入未固定的参数即可。

例如,固定一个求和函数的前两个参数:

from functools import partial

def add(x, y):
    return x+y

add_5 = partial(add, 5)
result = add_5(3)
print(result) # 8

在上述代码中,add_5是一个新的函数,其 个参数已经固定为5,所以调用时只需要传入第二个参数即可。

Python中的高阶函数在编写复杂的程序时非常实用,可以大大提高代码的可复用性和可维护性。掌握了高阶函数的使用技巧,可以让代码编写变得更加简洁高效。