我有一本这样的字典:
sampleData = {'x1': [1,2,3], 'x2': [4,5,6], 'x3': [7,8,9]}
我需要通过将数据传递给 blackBoxFunction 对每个键和值对进行一些计算。此功能需要时间来进行处理。最终输出存储在单独的字典finalValue = {}
中。
这是按顺序执行的代码:
for key in sampleData.keys():
finalValue[key] = []
for i in range(0,len(sampleData[key])):
for j in range(i,len(sampleData[key])):
if(i!=j):
finalValue[key].append(blackBoxFunction(sampleData[key][i],sampleData[key][j]))
但是,每个键和值对的计算是相互独立的。
我想知道如何在代码中使用多处理库来并行执行任务。
最终的字典结构看起来与输入字典相似。
finalValue
{'x1': [31, 43, 53], 'x2': [97, 110, 131], 'x3': [135, 164, 137]}
答案 0 :(得分:1)
尝试一些方法
from multiprocessing import Pool
def pair_black_box(data):
key, values = data
res = []
for i in range(0, len(values)):
for j in range(i, len(values)):
if(i != j):
res.append(blackBoxFunction(values[i], values[j]))
return key, res
p = Pool(3)
finalValue = dict(p.map(pair_black_box, sampleData.items()))