假设我需要处理一个非常大的单词列表,并且我需要计算在我拥有的一段文本中找到这些单词的次数。就可扩展性而言,哪个是最佳选择?
选项 I(正则表达式)
>>> import re
>>> s = re.compile("|".join(big_list))
>>> len(s.find_all(sentence))
方案二(套)
>>> s = set(big_list)
>>> len([word for word in sentence.split(" ") if word in s]) # O(1) avg lookup time
示例:如果列表是 ["cat","dog","knee"] 并且文本是“狗跳过了猫,但是狗摔断了膝盖”,最终结果应该是:4
PS 欢迎任何其他选择