我在大文本文件中搜索匹配,但是我覺得它太慢了。這是文件的結構:在一個大文件中最省時的搜索 - 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