有必要检查列表中的单词是否包含lst在字符串中string。下面的代码正在运行,但显然不是最佳选择。而且我也不确定正则表达式是否很快。
string = 'hello world people'
lst = ('foo', 'bar')
r = False
for x in lst:
if string.find(x) != -1:
r = True
break
print('Contains words:', r)
有必要检查列表中的单词是否包含lst在字符串中string。下面的代码正在运行,但显然不是最佳选择。而且我也不确定正则表达式是否很快。
string = 'hello world people'
lst = ('foo', 'bar')
r = False
for x in lst:
if string.find(x) != -1:
r = True
break
print('Contains words:', r)
要检查字符串是否
string至少包含列表中的一个元素lst,可以将字符串拆分为单词,将结果列表转换为集合,并获取此集合与从列表中获得的集合的交集lst:如果结果是一个非空列表,这将表明列表中至少有一个单词包含在字符串中。
更新1:
举个例子,让我们把契诃夫的全集分解成文字:
契诃夫全集查词速度测量:
UPDATE2:一种更简单且看似更快的方式(速度取决于列表大小
lst):最快的选项原来是使用构造
any,下面是比较各种搜索选项的代码,包括那些使用集合的选项。作为输入,我们使用了英文“复制”文本(~20 Mb),其中lst没有字典中的单词。结果: