python - 在 python 中存储和使用大型文本文件的最佳方式

标签 python boggle

我正在为我用 python 编写的 boggle-clone 创建一个网络服务器,它接受用户、解决棋盘并对玩家输入进行评分。我正在使用的字典文件是 1.8MB(ENABLE2K 字典),我需要它可用于多个游戏求解器类。现在,我有它,以便每个类逐行遍历文件并生成一个哈希表(关联数组),但是我实例化的求解器类越多,它占用的内存就越多。

我想做的是一次导入字典文件,然后根据需要将其传递给每个求解器实例。但是最好的方法是什么?我应该在全局空间中导入字典,然后在求解器类中将其作为 globals()['dictionary'] 访问吗?或者我应该导入字典然后将它作为参数传递给类构造函数吗?其中一个比另一个更好吗?还有第三种选择吗?

最佳答案

如果您创建一个 dictionary.py 模块,其中包含读取文件和构建字典的代码,则此代码只会在第一次导入时执行。进一步的导入将返回对现有模块实例的引用。因此,您的类(class)可以:

import dictionary

dictionary.words[whatever]

dictionary.py 有:

words = {}

# read file and add to 'words'

关于python - 在 python 中存储和使用大型文本文件的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/158546/

相关文章:

python - pyside改变QTreeWidgetItem的颜色

python - 在 python 中公开嵌套方法的可选参数

java - 搜索数组中的单词

java - 让我的字典搜索更有效率

c++ - vector <字符串>或 vector < vector <字符>>?

python - 分解 DataFrame 中具有多个值的单元格

python - 在此示例中,如何动态实例化(通过类名作为字符串)调用 getThings() 的类?

Python:如何将 Shutil.copy() 与 unicode 文件名一起使用

java - Boggle 游戏板搜索程序问题