我有一個包含大約400個單詞的列表。還有另一個列表,其中每個列表包含大約150,000個單詞。這個清單有20個這樣的清單。比較python中的兩個大列表
現在我想看看這1500個單詞列表中所有這400個單詞中有多少單詞出現。我也想從這400個單詞中知道一個單詞,在150k單詞列表中出現多少次,其中哪些單詞出現次數最多,次數多少等。
唯一的解決方案我能想到的是多項式時間解決方案。這是一個非常糟糕的解決方案,將是地獄很多慢:
for one_list in list_of_150kwords:
for key in 400_words:
for word in one_list:
if key == word:
# count this word
# do other stuff
這是一個非常醜陋和壞的解決方案,但我想不出什麼更好的。我試圖通過將這些列表轉換成NumPy數組來嘗試:
list_of_150kwords = numpy.array(list_of_150kwords)
...
但我仍然覺得它很慢。其他解決方案?或者任何圖書館?
哦,我沒試過集。他們比NumPy更快嗎?讓我跑步,看看 – avi
我相信'set'和'Counter'是這裏工作的正確工具,不僅僅是'numpy'數組。 –
但是我如何計算'one_list'中的單詞出現在'set_of_150kwords'多少次? – avi