Теперь у меня есть список шаблонов:
list1 = ['a[0-9]+', 'b[a-z]+', 'c[A-Z]+', ...]
, и у меня есть еще один список строк:
list2 = ['a1', 'babc', 'cABC', 'bbb', 'c1', ...]
I wi sh, чтобы быстро узнать строку в списке list2. какой шаблон в списке 1 и вернуть его индекс (если нет совпадения, вернуть -1):
output = [0, 1, 2, 1, -1, ...]
Теперь я просто использую «for», чтобы добиться этого:
output = []
for string in list2:
matched = False
for pattern in list1:
if re.match(pattern, string):
output.append(list1.index(pattern))
matched = True
break
if not matched:
output.append(-1)
Этот метод работает, но занимает слишком много времени, так как list1 и list2 большие. Так есть ли другой метод, который может быстро вернуть результат?