gpt4 book ai didi

python - 使用 pool.map() 时的全局字典 python

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:35 25 4
gpt4 key购买 nike

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'} 字典 = {0: 'a', 1: 'd'} 字典 = {0: 'e', 1: 'f'}

我想要得到 字典 = {0: 'a', 1: 'b', 2: 'c', 3: 'd',4: 'e', 5: 'f'}换句话说,使字典成为全局性的。我该如何修复它?

最佳答案

您可以在 process_chunk 函数的开头添加全局字典,但使用全局变量并不是一个好的做法。您最好将其传递到函数调用中或创建一个类并将其作为私有(private)成员。

关于python - 使用 pool.map() 时的全局字典 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37093750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com