from joblib import Parallel, delayed
import time
# 定义一个函数,模拟一个耗时的操作
def slow_function(n):
time.sleep(n) # 模拟耗时
return n * n
# 创建一个包含数字的列表
numbers = [1, 2, 3, 4, 5]
# 使用Parallel和delayed来并行地对每个数字执行slow_function
results = Parallel(n_jobs=-1)(delayed(slow_function)(n) for n in numbers)
# 打印结果
print(results)
在这个示例中,我们定义了一个模拟耗时操作的函数slow_function。然后,我们创建了一个包含数字的列表numbers。通过使用Parallel和delayed,我们并行地对列表中的每个数字执行了slow_function函数。最后,我们打印了结果。
请注意,在使用Parallel时,你可以通过设置n_jobs参数来控制并行任务的数量。在上面的示例中,我们设置了n_jobs=-1,这意味着用最大资源进行并行计算。
如果函数有两个变量,代码如下:
from joblib import Parallel, delayed
import time
# 定义一个函数,模拟一个耗时的操作,接受两个变量
def slow_function(x, y):
time.sleep(x + y) # 模拟耗时
return x * y
# 创建一个包含输入变量的列表
inputs = [(1, 2), (3, 4), (5, 6)]
# 使用Parallel和delayed来并行地对每个输入执行slow_function
results = Parallel(n_jobs=3)(delayed(slow_function)(x, y) for x, y in inputs)
# 打印结果
print(results)
在这个示例中,我们定义了一个函数slow_function,它接受两个变量x和y。然后,我们创建了一个包含输入变量的列表inputs,其中每个元素都是一个元组,包含两个变量。通过使用Parallel和delayed,我们并行地对列表中的每个输入执行了slow_function函数。最后,我们打印了结果。
请注意,在使用Parallel时,你可以通过设置n_jobs参数来控制并行任务的数量。在上面的示例中,我们设置了n_jobs=3,这意味着最多同时执行3个任务。你可以根据自己的需求调整这个参数。