【发布时间】:2013-08-19 18:11:36
【问题描述】:
我有一个字符串。我需要知道字符串中是否出现以下任何子字符串。
所以,如果我有:
thing_name = "VISA ASSESSMENTS"
我一直在搜索:
any((_ in thing_name for _ in ['ASSESSMENTS','KILOBYTE','INTERNATIONAL']))
我正在浏览一长串 thing_name 项目,我不需要过滤,确切地说,只需检查任意数量的子字符串。
这是最好的方法吗?感觉不对,但我想不出更有效的方法来解决这个问题。
【问题讨论】:
-
您是在搜索确切的词
VISA和ASSESSMENTS还是任何子字符串? -
如果您的可能子字符串列表是一组,您可能会加快速度,但除此之外,我认为这种方法没有任何问题。这很好,可读。下一步将是认真的算法设计。
-
@AshwiniChaudhary,我正在寻找“评估”、“千字节”或其他几个项目之一。
-
@kojiro,谢谢。我会进行一些速度测试。
-
@JoshEnglish 我不知道您的初始数据,但它可能值得消除子字符串 within 集合:例如,如果您有
{'foo', 'bar', 'foobaz'}你可以从集合中删除foobaz。