gpt4 book ai didi

python - python 中字典的静态行为

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:47 26 4
gpt4 key购买 nike

在读取一个大文件后,我需要填充一本字典。我创建了一种读取文件并填充该字典的方法。每次迭代都会调用此方法,这会降低性能。无论如何,我可以将这个字典声明为静态,并且它在应用程序的整个生命周期中保持不变。

我尝试使用下面的代码(使用非本地)来模拟这一点,但没有帮助。每次迭代都会读取该文件。

def read_data_from_file( path ):
file_name = path + '.dat'

common_array_dict = dict()

def get_the_dict():
try:
common_array_list = list()
nonlocal common_array_dict

if common_array_dict :
return common_array_dict

with open(file_name, 'rb') as file:
new_list = pickle.load(file)
print("Reading file")
for do_operations here:
<stat1>
<stat2>
except IOError:
print("Output file doesn't exist! Continuing..")
return

return get_the_dict

任何建议都会有帮助:)

最佳答案

最简单的方法是查找一些内存装饰器,例如来自here ,并相应地装饰该函数,然后在代码中正常使用它。每个文件只能读取一次,结果将存储在缓存中供以后使用。

@memoize
def read_data_from_file( path ):
...
<小时/>

或者,只需将该函数的结果绑定(bind)到某个(可能是全局)变量并使用该变量,而不是再次调用该函数。无需在函数本身内使用全局。

data = read_data_from_file("the/path/to/the/file")
....
do_stuff_with(data) # use result from function
...
do_more_stuff(data) # don't call read_data_from_file again

关于python - python 中字典的静态行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41933059/

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