from functools import lru_cache
# 使用 lru_cache 装饰器来缓存函数的返回值,以提高性能
@lru_cache(maxsize=128)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
# 示例调用
print(fibonacci(10)) # 输出: 55
# 解释说明:
# lru_cache 是 functools 模块中的一个装饰器,用于缓存函数的返回值。
# 它可以显著提高递归函数(如斐波那契数列)的性能,因为它会存储最近使用过的输入及其对应的输出。
# 当再次调用相同的输入时,它将直接返回缓存的结果,而不是重新计算。
from functools import partial
# 使用 partial 来创建新的函数,这些新函数具有固定的参数值
def multiply(x, y):
return x * y
# 创建一个新的函数 double,它总是将第一个参数固定为 2
double = partial(multiply, 2)
# 示例调用
print(double(4)) # 输出: 8
# 解释说明:
# partial 是 functools 模块中的一个工具,用于创建部分应用函数。
# 它允许你固定某些参数,从而减少需要传递的参数数量。
# 在这个例子中,我们创建了一个新的函数 double,它总是将第一个参数固定为 2。
from functools import reduce
# 使用 reduce 来对列表进行累积操作
numbers = [1, 2, 3, 4, 5]
# 计算列表中所有元素的乘积
product = reduce(lambda x, y: x * y, numbers)
# 示例调用
print(product) # 输出: 120
# 解释说明:
# reduce 是 functools 模块中的一个函数,用于对可迭代对象中的元素进行累积操作。
# 它接受一个二元函数和一个可迭代对象,并将该函数应用于可迭代对象的第一个和第二个元素,
# 然后将结果与第三个元素一起应用该函数,依此类推,直到处理完所有元素。
# 在这个例子中,我们使用 lambda 函数来计算列表中所有元素的乘积。
上一篇:python base64加密
下一篇:python设置全局变量
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站