【发布时间】:2010-02-19 17:53:45
【问题描述】:
我有一个包含大致所有英文单词的文件(~60k 词,~500k 个字符)。我想测试我收到的某个单词是否是“英语”(即,这个确切的单词是否在列表中)。
在 Python 中最有效的方法是什么?
简单的解决方案是将文件加载到列表中并检查单词是否在该列表中。列表可以排序,我相信这会将复杂度降低到 O(logn)。但是,我不确定 Python 如何实现通过列表进行搜索,以及如果内存中存在如此大的列表是否会降低性能。我可以“滥用”我可以限制单词长度的事实吗? (例如,最长的是 15 个字符)。
请注意,我在具有大量内存的机器上运行应用程序,因此我关心的不是内存消耗而是速度和 CPU 利用率。
谢谢
【问题讨论】: