What's the most efficient way to load a dictionary in Python?
我有一本大约1000条的Python字典。将重复调用一个脚本,该脚本希望解析一个字符串,并查看字符串中是否有匹配的键。如果有,它将根据键和值采取一些操作。
哪个更快?
1)将字典存储在MySQL数据库中,然后每次调用脚本时读取数据库?
2)将字典存储在python脚本中,并每次导入?(例如,生成只包含字典初始化的文件)
3)将字典存储在文本文件中,并每次导入?(使用cpickle,可以是纯文本文件,也可以是pickle序列化数据文件)
只是在这里寻找最佳实践。
您可以创建一个.py python文件,该文件只将字典分配给一个名称。保存文件。将文件编译为.pyc,然后在主python脚本需要时将其作为模块加载。
这样做的好处是,为维护/调试保留了一个可读的dict文本表示,加载.pyc文件的速度快,而且所有这些文件的简单性都是标准的python。
出于测试目的,您还可以加载字典,其中包含如下所示的任何内容(本例中为整数):
1 | D = dict(zip(range(100),range(100))) |
我认为将它作为字典存储在一个python文件中,并导入到每个需要它的模块中是一种可行的方法。你能用程序来构造它吗?不管怎样,每个程序执行一次文件实际上只导入一次,所以它不应该是一件大事,除非您知道出于某种原因,在开始时加载一次文件是不可接受的。
在我看来,1)和3)都是正确的。数据库查询的开销很可能会大大降低访问速度。选项2)将使其成为一个简单的dict查找。