1
  • 我正在使用 Python 中的 acora 库来尝试在多个字符串中搜索多个关键字。
  • 它有两个我可以用来搜索的功能:findallfinditer
  • 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 倍,这看起来很荒谬。

4

1 回答 1

1

刚刚意识到我基本上可以遍历 iter 对象并在结果出现时立即中断。

于 2013-01-03T22:50:44.840 回答