在函数内部访问python字典

时间:2014-03-25 13:49:41

标签: python multithreading function dictionary

我正在构建一个我想在函数内部访问的字典。是否有任何方法可以全局声明所述字典,而不是每次调用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) 

谢谢!

1 个答案:

答案 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)