我正在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完全在其中的事实就足够了。我可以用迭代器找到它吗?看看最多是否有一场比赛?
我之所以这样问,是因为我只是将acora与基本字符串匹配的时间定为2个嵌套循环,其速度慢了4倍,这似乎很荒谬。
最佳答案
刚刚意识到,我基本上可以遍历iter对象,并在结果通过后立即中断。