Другие решения дают вам то, что вы хотите, так что вот один для развлечения. Вы можете использовать functools.reduce
с пользовательской функцией.
from functools import reduce
a = ['ab','bcd','efg','h']
b = ['wiab','wbcdz','rh','ksw','erer']
def remove(x, y):
return x.replace(y, '')
out = [reduce(remove, a, i) for i in b]
, давая
['wi', 'wz', 'r', 'ksw', 'erer']
Редактировать: Возможно, наименее понятный способ, которым вы можно было бы написать это как однострочник с лямбдой:)
[reduce(lambda x, y: x.replace(y, ''), a, i) for i in b]