Python 如何检查字符串中的整个单词是否包含在其他字符串中?
如果字符串中的一个单词与另一个字符串中的一个单词相同,我希望我的程序返回True,但仅当整个单词匹配,而不是单个字母或部分。这里有一个关于我的意思的例子Python 如何检查字符串中的整个单词是否包含在其他字符串中?,python,string,substring,Python,String,Substring,如果字符串中的一个单词与另一个字符串中的一个单词相同,我希望我的程序返回True,但仅当整个单词匹配,而不是单个字母或部分。这里有一个关于我的意思的例子 a = "hi please help" b = "help anyone" if any(a.split()) == any(b.split()): print("True") 这暂时有效,但如果我用a换其他东西 a = "h" b = "h
a = "hi please help"
b = "help anyone"
if any(a.split()) == any(b.split()):
print("True")
这暂时有效,但如果我用a换其他东西
a = "h"
b = "help"
if any(a.split()) == any(b.split()):
print("True")
它仍然打印“真”,这不是我的本意。
我确实查看了其他类似的线程,但我找不到任何解决部分不被接受的问题的方法,但整个字符串不必是子字符串。尝试以下方法:
set_a = set(a.split())
any(w in set_a for w in b.split())
如果b.split()
中的任何单词w
位于set\u a
中,则这将计算为True
,其中set\u a
是由a.split()构成的一组单词
这应该比执行集合交集更快,因为(1)它只为其中一个拆分字符串创建集合,(2)它在找到匹配项后立即停止搜索,以及(3)它不为交集结果创建集合。尝试以下操作:
for i in b.split():
if a.split().count(i):
print("True")
将两个字符串转换为集合并创建交点:
if set(a.split()) & set(b.split()):
print("True")
这应该是可行的:any([e in a.split(),e in b.split()])
a.split().count(i)
比i in a.split()
更贵,而且做a.split()
每一圈也很贵。您的提案也可以打印多次