【发布时间】:2020-10-29 16:28:05
【问题描述】:
我想在以下之间找到共同的字符串: strings_list = ['PS1 123456 测试', 'PS1 758922 测试', 'PS1 978242 测试']
下面的代码只返回第一部分“PS1 1”,我想结果是“PS1 Test”。你能帮我吗,是否可以使用 SequenceMatcher 获得?提前谢谢!
def findCommonStr(strings_list: list) -> str:
common_str = strings_list[0]
for i in range(1, n):
match = SequenceMatcher(None, common_str, strings_list[i]).get_matching_blocks()[0]
common_str = common_str[match.b: match.b + match.size]
common_str = common_str.strip()
return common_str
【问题讨论】:
-
对于
['PS1 123456 Test', 'PS1 Test 454'],答案仍然是PS1 Test,对吗? -
common = set.intersection(*map(set, map(str.split, strings_list))). -
(ping) 您能否通过接受您最喜欢的答案(如果确实有)来帮助 stackoverflow 机制,以便答案的作者不会在他们的活动列表中看到这个问题;)谢谢你的参与。如果没有一个答案是相关的,请忽略这个 ping。
标签: python python-3.x string sequencematcher