Jun-13-2018, 06:53 AM
Another way is to use regular expressions:
import re #output1, output2=[],[] preset=r"cookie\." list1=['cookie.A001', 'cookie.H004', 'cookie.H004 andsomeothertext', 'cookie.ABC031', 'cookie.FAIL002'] list2=['A', 'H', 'ABC'] #list2_total=[preset+x for x in list2] list2_pats = map(lambda x: re.compile(preset + r'(%s)([0-9]+)' % x), list2) result = sum([pat.findall(item) for pat in list2_pats for item in list1], []) output1, output2 = zip(*result) print(output1) print(output2)There is no problem with A/ABC matching if xxxx in cookie.Axxxx (cookie.ABCxxxx) are digits.