например,
a = 'abc123def' b = 'abcdef'
Мне нужна функция, которая может определять, есть ли b в a.
contains(a,b)=True
Разрыв ps также разрешен в представлении b, например
b='abc_def'
, но регулярные выражения не разрешены.
Если вы хотите проверить, является ли b подпоследовательностью из a, вы можете написать:
b
a
def contains(a, b): n, m = len(a), len(b) j = 0 for i in range(n): if j < m and a[i] == b[j]: j += 1 return j == m
def new_contained(a,b): boo = False c = [c for c in a] d = [i for i in b] if len(c)<=len(d): for i in c: if i in d: boo = True return boo
Попробуйте использовать понимание списка:
def contains(main_string, sub_string): return all([i in main_string for i in sub_string])
ПРИМЕЧАНИЕ: 'all' - это встроенная функция, которая принимает итерацию логических значений и возвращает try, если все они истинны.