我有一个包含大约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