Python 如果一个单词匹配,如何返回True?

Python 如果一个单词匹配,如何返回True?,python,python-3.x,Python,Python 3.x,我必须编写一个返回True的函数,即使两个字符串之间有一个word匹配 willis towers watson和willis singapore->Trueaswillis匹配 willis towers watson和willis私人有限公司->True与willis匹配 willis towers watson和将拖曳wat->False,因为没有Word匹配 我尝试了一个正则表达式,但没有成功: bool(re.search('willis towers watson', 'willis

我必须编写一个返回
True
的函数,即使两个字符串之间有一个word匹配

willis towers watson
willis singapore
->
True
as
willis
匹配

willis towers watson
willis私人有限公司
->
True
willis
匹配

willis towers watson
将拖曳wat
->
False
,因为没有
Word
匹配

我尝试了一个正则表达式,但没有成功:

bool(re.search('willis towers watson', 'willis singapore'))
最好使用一个衬垫,而不是for回路

只需将字符串拆分为多组单词,然后检查这两组单词 相交

或者

>>> not a.isdisjoint(b.split())
True
只需将字符串拆分为多组单词,然后检查这两组单词 相交

或者

>>> not a.isdisjoint(b.split())
True

为什么要使用正则表达式?只要把字符串分成几组字,然后检查两组字是否相交。“最好是一行而不是for循环。”我不同意。此任务没有可读的单行解决方案。语言匹配,或仅字符匹配?为什么使用正则表达式?只要把字符串分成几组字,然后检查两组字是否相交。“最好是一行而不是for循环。”我不同意。这个任务没有可读的单行解决方案。语言匹配,或者只是字符匹配?Psst:还有另一种选择(编辑:意思是
set。交叉点
)不是懒惰的,所以我更喜欢使用
any
@Aran-Fey谢谢,我真的不知道它的存在!如果
b
也是一个集合,例如
b=set('willis singapore'.split())
,那么交叉点就是
a&b
,如果a&b:…
检查
,则不确定,但是如果这比
isdisjoint
快,但这将是两个集合的交叉点检查。Psst:还有另一种选择(编辑:意思是
set.intersection
)并不懒惰,所以我更喜欢使用
any
@aranfey谢谢,我真的不知道它的存在!如果
b
也是一个集合,例如
b=set('willis singapore'.split())
,则交叉点仅为
a&b
,检查
如果a&b:…
不确定,但是,这是否比
isdisjoint
快,但这将是两组的交叉点检查。