如果它包含 Python 中另一个列表的子字符串,则在列表中查找第一个匹配项

Find first occurence in a list if it contains a substring from another list in Python

我试图在字符串中找到与另一个列表中的子字符串匹配的第一次出现。但是,我需要结果 return 列表中的一个子字符串,该子字符串由 ',' 分隔。

这是我目前所拥有的。


match_list = ['/AAA 123/' , '/ABC 444/']

text = '/AAA 123/BBB 234/,/CC 345/XXX 999/,/ABC 110/BBD 678/KLM 888/,/AAA 111/ABX 777/ABC 444/'
text_list = text.split(',')

# For loop method
for item_to_match in match_list:
    for line in text_list:
        if item_to_match in line:
            print(line)

# List comprehension            
matched_strings_list = [line for line in text_list for item_to_match in match_list if item_to_match in line]

Current result: '/AAA 111/ABX 777/ABC 444/', '/AAA 123/BBB 234/'
Desired result: '/AAA 123/BBB 234/'

这两种方法都给了我一个很好的列表,但它没有排序,我无法根据列表获得第一次出现。

未订购是什么意思?你在找startswith吗?

[i for i in text.split(',') for j in match_list if i.startswith(j)]
Out[120]: ['/AAA 123/BBB 234/']?

是吗?

[i for j in match_list for i in text.split(',') if j in i]
Out[125]: ['/AAA 123/BBB 234/', '/AAA 111/ABX 777/ABC 444/']