- 我剛剛解析了一個大文件,並創建了一個包含42.000個字符串/字的列表。我想查詢[對這個列表]來檢查給定的單詞/字符串是否屬於它。所以我的問題是:在一個巨大的列表中查找/搜索的最有效方式(python)
這種查找最有效的方法是什麼?
第一種方法是對列表進行排序(list.sort()
),然後只用
>> if word in list: print 'word'
這實在是微不足道的,我相信有一個更好的辦法做到這一點。我的目標是應用快速查找,查找給定字符串是否在此列表中。如果您對其他數據結構有任何想法,歡迎提供。然而,現在我想避免像Tries等更復雜的數據結構。我有興趣聽到關於快速查找的想法(或技巧),或者可能比簡單的in
更快地執行搜索的任何其他Python庫方法。
,也是我想知道搜索項
感謝您詳細的答覆很多THC4k。其實我正在考慮自己申請一個二進制搜索,但正如我所看到的那樣,無論如何這是對分模塊所做的,所以你節省了我的時間:)。再次感謝您的幫助。 – user229269 2010-04-23 20:31:46
@ user229269,你鎖定在帖子的錯誤部分!你可能想要一個'set',而不是'list'。 – 2010-04-23 21:34:41
@Mike Graham我知道你在說什麼,但是如果我使用集合,恐怕我可能會遇到內存問題,因爲我的列表實際上是一個快速增長的單詞列表,它最終會達到100.000個字符串和更多 – user229269 2010-04-23 22:13:56