gpt4 book ai didi

使用 Pickle 快速创建 Python 字典?

转载 作者:行者123 更新时间:2023-11-30 23:27:55 24 4
gpt4 key购买 nike

我正在尝试编写一个字谜服务。该程序的第一阶段是遍历单词字典并创建一个 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,pickled 字典的加载速度也比原始脚本慢两倍!谁能建议我在这里缺少什么以及优化字典加载的正确路线是什么?

最佳答案

当您转储数据时,请确保指定要使用的协议(protocol):

with open('dict.obj', 'wb') as fh:
pickle.dump(obj, fh, pickle.HIGHEST_PROTOCOL)

加载时,如果切换到 Python 3(如果可能),您应该会看到速度有所提高。

with open('dict.obj', 'rb') as fh:
return pickle.load(fh)

还建议将 pickle 文件存储在单独的介质上。因为从同一设备运行所有内容都会减慢读取过程。

关于使用 Pickle 快速创建 Python 字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21875228/

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