本文主要是介绍python中的高阶函数示例详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋...
1.定义
高阶函数(Higher-order Function)是指能够接受其他函数作为参数,或者将函数作为返回值的函数。在python中,函数是一等公民(First-class Citizen),这意味着函数可以像其他数据类型一样被传递和使用。
高阶函数有以下三个特征:
函数可以作为参数传递
函数可以作为返回值
函数可以赋值给变量
2.map函数
map(function, iterable)
将函数应用于可迭代对象的每个元素,返回一个迭代器。
其中lambda是匿名函数。在此处代表一个任意函数。
# 将列表中的每个元素平方 numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, numbers)) print(squared) # [1, 4, 9, 16, 25] # 使用普通函数 def square(x): return x**2 squared = list(map(square, numbers))
3.filter函数
fiChina编程lter(function, iterable)
根据函数的返回值(True/False)来过滤元素。
# 过滤出偶数 numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = lijavascriptst(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # [2, 4, 6, 8, 10] # 过滤出长度大于3的字符串 words = ["apple", "cat", "dog", "elephant"] long_words = list(filter(androidlambda word: len(word) > 3, words)) print(long_words) # ["apple", "elephant"]
4.reduce函数
reduce(function, iterable[, initializer])
对可迭代对象中的元素进行累积计算(需要从functools导入)。
from functools import reduce # 计算乘积 numbers = [1, 2, 3, 4, 5] product = reduce(lambda x, y: x * y, numbers) print(product) # 120 # 找出最大值 max_value = reduce(lambda x, y: x if x > y else y, numbers) print(max_value) # 5
5.sorted函数
sorted(iterable, key=None, reverse=False)
根据key函数对可迭代对象进行排序。
# 按字符串长度排序 words = ["apple", "cat", "dog", "banana"] sorted_words = sorted(words, key=len) print(sorted_words) # ['cat', 'dog', 'apple', 'banana'] # 按第二个字符排序 sorted_by_second = sorted(words, key=lambda x: x[1]) print(sorted_by_second) # ['banana', 'cat', 'apple', 'dog']
6.自定义高阶函数
# 函编程China编程数作为参数 def apply_twice(func, value): """将函数应用两次""" return func(func(value)) result = apply_twice(lambda x: x * 2, 3) print(result) # 12 (3*2=6, 6*2=12) # 函数作为返回值 def create_multiplier(factor): """创建一个乘法器函数""" def multiplier(x): return x * factor return multiplier double = create_multiplier(2) triple = create_multiplier(3) print(double(5)) # 10 print(triple(5)) # 15
上述代码分别是函数作为参数和函数作为返回值的两种情况。
现在掌握了如何自定义高阶函数后,结合装饰器@使用以下:
def timer_decorator(func): """计算函数执行时间的装饰器""" def wrapper(*args, **kwargs): import time start = time.time() result = func(*args, **kwargs) end = time.time() print(f"{func.__name__} 执行时间: {end - start:.4f}秒") return result return wrapper @timer_decorator def slow_function(): import time time.sleepChina编程(1) return "完成" result = slow_function() # 会自动打印执行时间
最后,高阶函数是Python函数式编程的重要组成部分,熟练掌握它们可以写出更加优雅和高效的代码。
总结
到此这篇关于python中高阶函数的文章就介绍到这了,更多相关python高阶函数内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于python中的高阶函数示例详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!