我有两个列表,如下所示:
c = ['John', 'query 989877 forcast', 'Tamm']
isl = ['My name is Anne Query 989877', 'John', 'Tamm Ju']
我想检查isl
中的每一项与c
中的每一项,这样我就得到了所有的部分字符串匹配。
我需要的输出如下所示:
可以看出,我也得到了部分字符串匹配。在
我试过以下方法:
out = []
for word in c:
for w in isl:
if word.lower() in w.lower():
out.append(word)
但这只给我的输出是
out = ["John", "Tamm"]
我也尝试了以下方法:
print [word for word in c if word.lower() in (e.lower() for e in isl)]
但这只输出“John”。 我怎样才能得到我想要的?在
好吧,我想到了这个!一种非常老套的方法;我自己不喜欢这种方法,但它给了我输出:
也许是这样的:
如果只想存储最大的匹配项,则需要以相反的顺序生成子字符串,并在^{中找到匹配项时立即中断:
^{pr2}$相关问题 更多 >
编程相关推荐