我正在构建一个我想在函数内部访问的字典。是否有任何方法可以全局声明所述字典,而不是每次调用func时都将其传递给函数?
原因是我想要将该函数调用数百万次并且我尝试使用p.map()进行多线程处理,所以我只想尝试将一行数据传递给函数I& #39;正在呼唤..
def build_dict()
file=open(f,'r')
for line in file.readlines():
do_something_and_build_dict
def function(data):
if part_of_data in dict.keys():
do somthing
results = p.map(function,data)
谢谢!
答案 0 :(得分:1)
您所要做的就是在模块级别(或者类级别,或者适合您使用的任何内容)定义您的字典。只要您不在函数中重新分配字典名称,就不需要做任何其他事情了。
my_dict = {i:i+1 for i in range(10)} # build a module-level dict
def function(data):
# Do stuff with the global (module-level) dict
my_dict[2] = data[-1]
data.append(my_dict[9])
return data
if __name__ == '__main__':
result = function([1,2,3,4,5])
print(result)
print(my_dict)