我正在尝试在与另一个列表的子字符串匹配的字符串中找到第一个匹配项。但是,我需要结果从列表中返回一个以','分隔的子字符串。
这是我到目前为止所拥有的。
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/'
这两种方法都给了我一个很好的列表,但是它没有排序,而且我无法根据该列表第一次出现。
答案 0 :(得分:0)
不订购是什么意思?您在寻找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/']