- 我正在使用 Python 中的 acora 库来尝试搜索多个字符串中的多个关键字。
- 它有两个可用于搜索的函数:
findall
和finditer
findall
返回匹配列表,有点像正则表达式 findall。finditer
返回一个迭代器,逐一查找结果
>>> import acora >>> builder = acora.AcoraBuilder('ab', 'bc', 'de') >>> ac = builder.build() >>> ac.findall('this-is-my-testing-phrase-which-has-ab-and-bc-and-de') [('ab', 36), ('bc', 43), ('de', 50)]
- 我只想知道是否有一场比赛。我不想浪费更多的处理能力来查看是否还有类似于
findall
中的其他内容。所以事实上 ab 就在那里就足够了。
我可以用迭代器找到这个吗?看看是否最多有一场比赛?
我问这个是因为我刚刚用 2 个嵌套循环对 acora 与基本字符串匹配进行了计时,并且速度慢了 4 倍,这看起来很荒谬。
最佳答案
刚刚意识到我基本上可以循环遍历 iter 对象并在结果出现后立即中断。
关于python - 有效地使用 Acora/迭代器中结果是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14148483/