我有一个包含大约 10000 个条目的子字符串列表 -
substr_ls = ['N_COULT16_1 1', 'S_COULT2', 'XBG_F 1', 'FAIRWY_3', .....]
我有一个包含大约 100 个条目的字符串列表 -
main_str_ls = ['N_COULT16_1 1XF', 'S_COULT2_RT', 'XBG_F TX300 1', 'FAIRWY_34_AG', ....]
如您所见,子字符串不是来自 main_str_ls
的字符串的完美子字符串。子字符串中的字母、数字等序列必须与字符串中的序列匹配才能匹配。例如 - 'XBG_F 1'
与 'XBG_F TX300 1'
匹配,因为即使在 'TX300'
和 'XBG_F'
中间有一个 '1'
的序列也是匹配的'我目前正在使用这个功能 -
def is_subsequence(pattern, items_to_use):
items_to_use = (x for x in items_to_use)
return all(any(x == y for y in items_to_use) for x, _ in itertools.groupby(pattern))
从 Finding a substring in a jumbled string 通过迭代 main_str_ls
(main_str_ls
的内容用作 items_to_use
)和 substr_ls
(substr_ls
的内容用作 { {1}}) 并且当我找到匹配项时,它会中断循环并执行一些操作。像这样 -
pattern
是否有更好的方法或 Pythonic 方法来执行此操作?
答案 0 :(得分:1)
您需要什么与混乱的字符串问题之间的区别之一是他们担心允许重复。我认为您不能直接使用该设计。 相反,请尝试此链接 https://www.geeksforgeeks.org/given-two-strings-find-first-string-subsequence-second/