【问题标题】:Python multiprocessing - Independently processing for each key-value pair in the dictionaryPython multiprocessing - 独立处理字典中的每个键值对
【发布时间】:2018-12-26 21:23:47
【问题描述】:

我有一本像这样的字典:

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]}

【问题讨论】:

    标签: python multiprocessing python-multiprocessing


    【解决方案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()))
    

    【讨论】:

      猜你喜欢
      • 2014-06-26
      • 2019-07-10
      • 2011-06-09
      • 1970-01-01
      • 2019-11-08
      • 2023-03-22
      • 1970-01-01
      • 2021-06-27
      • 2022-01-02
      相关资源
      最近更新 更多