【发布时间】:2014-02-19 08:47:36
【问题描述】:
我正在尝试编写一个字谜服务。程序的第一阶段是遍历一个单词字典,并创建一个 Python 字典,其中包含单词长度的键和这些长度的单词的值,即:
def processedDictionary():
d = defaultdict(list)
f = open(dictionaryFile, "r")
f.close()
for line in lines:
length = len(line)
d[length].append(line)
return d
这意味着字谜单词只需与相同长度的单词进行比较,processedDictionary()[length] 可以加快脚本速度。但是,我试图进一步优化脚本,因为每次有人对单词进行字谜时都必须“处理”字典是很愚蠢的,所以我每次都查看 pickle 来加载已经排序的字典:
def processedDictionary():
file = open("dic.obj",'rb')
object_file = pickle.load(file)
file.close()
return object_file
dic.obj 是已处理字典的 2MB 转储。然而,即使使用 cPickle,腌制字典的加载速度也是原始脚本的两倍!谁能建议我在这里缺少什么以及优化字典加载的正确途径是什么?
【问题讨论】:
-
你运行的是哪个python版本?
-
Python 2.7。抱歉,总是忘记提及...
-
不用担心,这在使用 Pickle 时尤为重要 :)
标签: python dictionary pickle