我在大文本文件中搜索匹配,但是我觉得它太慢了。这是文件的结构:在一个大文件中最省时的搜索 - Python
word1 5752
word2 96332
word3 137
我试图匹配第一列文字,我想提取在第二列中的值。这些列由\ t分隔,并且有大约1000万行。该文件用不同的词搜索多次。什么样的搜索方法具有最佳的时间效率?
编辑:该文件是129 Mb,至少将搜索数千次。 EDIT2:文件按字母顺序排序,只有当它们有不同的大写字母时,才会出现多次字,例如:Word WORD word WOrd将全部是不同的条目。
如何,您在搜索,以及如何你加载数据?例如,如果您将整个文件加载到内存中,那么这可能是性能不佳的原因。或者,你可能会更好地使用不同的算法,你可以在再次阅读之前搜索每行上的不同单词吗? – cdarke
根据您搜索数据的次数,您可以将整个文件加载到内存中并将其转换为字典。虽然这可能会消耗一些内存。 – voidpointercast
“什么方法的搜索有最好的时间效率?” - “这取决于” - 这取决于你的机器有多少内存,单词的长度,如果'word1'在文件中有多个实例,我忘了提及的其他内容。总而言之,我会与[voidpointercast](http://stackoverflow.com/users/2242806/voidpointercast)建议(现在已被提升为[答案](http://stackoverflow.com/a/42301043/2749397)),一切都在字典和测试.. – gboffi