def process_chunk(d):
if (d):
d = d.split(" ")
for value in d:
if value not in dictionary.values():
dictionary[len(dictionary)] = value
print(dictionary)
return 1
def grouper(n, iterable, padvalue=None):
return izip_longest(*[iter(iterable)]*n, fillvalue=padvalue)
dictionary = {}
if __name__ == "__main__":
test_data = open('testfile.txt').read()
test_data = test_data.split("\n")
p = multiprocessing.Pool(4)
for chunk in grouper(2, test_data):
results = p.map(process_chunk, chunk)
当我调用函数process_chunk(d)时,变量"字典"会变空。我想把所有结果都放到字典中: 假设我每次都得到结果: dictionary = {0:' a',1:' b',2:' c'} dictionary = {0:' a',1:' d'} 字典= {0:' e',1:' f'}
我想得到 dictionary = {0:' a',1:' b',2:' c',3:' d',4:& #39; e',5:' f'} 换句话说,使字典全局化。 我该如何解决?
答案 0 :(得分:1)
您可以在global dictionary
函数的开头添加process_chunk
,但使用全局变量并不是一个好习惯。您最好将其传递给函数调用或创建一个类并将其作为私有成员。