- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我需要处理一个非常大的单词列表,并且我需要计算在一段文本中找到这些单词的次数。就可扩展性而言,哪个是最佳选择?
选项 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
附注欢迎任何其他选择
最佳答案
如果您的单词是字母数字,我可能会使用以下内容:
s = set(big_list)
sum(1 for x in re.finditer(r'\b\w+\b',sentence) if x.group() in s)
由于集合的隶属度测试平均为 O(1),因此该算法变为 O(N+M),其中 N 是句子中的单词数,M 是 big_list 中的元素数。不是太寒酸。它在内存使用方面也表现得很好。
关于python - 用于字符串查找的集合与正则表达式,哪个更具可扩展性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269442/
我的按钮有问题。该按钮是登录按钮。当我在输入凭据后单击回车时,将触发查看凭据是否正确的方法。这没有任何问题。 但还应该发生的是,在检查这些凭据是否正确之后,登录和注册按钮应该会被删除,同时会出现一个新
因此,我尝试以 Angular 显示多个 View ,以帮助解决我正在构建的网站中遇到的页脚问题。我想确保我一直在阅读和尝试模仿的内容是有意义的。这就是我到目前为止所拥有的。 index.html
我正在尝试创建可调整大小的 div 容器,而且它们是可拖动的。 我使用了 Angular Material 拖放和 angular resizable element 这是解决方法 https://s
我正在尝试创建可调整大小的 div 容器,而且它们是可拖动的。 我使用了 Angular Material 拖放和 angular resizable element 这是解决方法 https://s
我是一名优秀的程序员,十分优秀!