如果字符串中的一个单词与另一个字符串中的单词相同,但仅当整个单词匹配而不是单个字母或部分匹配时,我希望我的程序返回 True。这是我的意思的一个例子......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")它仍然打印“True”,这不是我的意图。我确实查看了与此类似的其他线程,但我找不到任何解决部分不被接受的问题的方法,但整个字符串不必是子字符串。
3 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
尝试这个:
set_a = set(a.split()) any(w in set_a for w in b.split())
这将评估True
是否有任何单词w
fromb.split()
位于 中set_a
,其中set_a
是由 组成的一组单词a.split()
。
这应该比执行集合交集更快,因为 (1) 它只为其中一个分割字符串创建一个集合,(2) 一旦找到匹配项,它就会停止搜索,并且 (3) 它不会创建集合为交集结果。
添加回答
举报
0/150
提交
取消