这是主要代码:
if __name__ == '__main__':
manager = Manager()
mylist = manager.list()
mydict = manager.dict()
mylist.append('abc')
mylist.append('xyz')
for k in mylist:
mydict[k] = manager.list()
pool = Pool(processes = 100)
pool.map(func, arg)
pool.terminate()
这是 func() 定义:
for x in mylist:
r = {}
r['m'] = 1
r['n'] = 2
print (r) # gives correct values
mydict[x].append(dict(r))
print (mydict) # gives empty list, keys are printed correct
如代码中所述,它正在打印空列表而不是预期值。如何使这个共享的字典和列表正常工作?
第一次打印显示预期值。第二次打印显示预期的键,但值部分是空列表。由于它正确显示了密钥,因此共享工作正常。附加部分存在一些问题。我无法弄清楚。
否决选民,在您认为我的问题与那个问题相同之前,请仔细阅读链接的问题。如果您仍然坚持认为它们是相同的,请发表评论说明您为什么这么认为。在我看来,这两个问题是不同的。链接的问题询问如何与建议使用 Manager.dict() 的答案共享 dict。我的问题已经使用 Manager.dict() 并且由于异常而失败。谢谢你。