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