我正在尝试dict
使用以下代码更新共享对象 (a)。但它不起作用。它给了我输入dict
作为输出。
编辑:Exxentially,我在这里想要实现的是将数据(列表)中的项目附加到字典的列表中。数据项在字典中给出索引。
预期输出:{'2': [2], '1': [1, 4, 6], '3': [3, 5]}
注意:方法 2 引发错误TypeError: 'int' object is not iterable
方法一
from multiprocessing import * def mapTo(d,tree): for idx, item in enumerate(list(d), start=1): tree[str(item)].append(idx) data=[1,2,3,1,3,1] manager = Manager() sharedtree= manager.dict({"1":[],"2":[],"3":[]}) with Pool(processes=3) as pool: pool.starmap(mapTo, [(data,sharedtree ) for _ in range(3)])
- 方法二
from multiprocessing import *
def mapTo(d):
global tree
for idx, item in enumerate(list(d), start=1):
tree[str(item)].append(idx)
def initializer():
global tree
tree = dict({"1":[],"2":[],"3":[]})
data=[1,2,3,1,3,1]
with Pool(processes=3, initializer=initializer, initargs=()) as pool:
pool.map(mapTo,data)```