Быстро попробовал это в интерактивной оболочке:
>>> l = ['a', 'ab', 'abc', 'bac']
>>> [x for x in l if 'ab' in x]
['ab', 'abc']
>>>
Почему это работает? Поскольку оператор in
определен для строк, чтобы означать: «является подстрокой».
Кроме того, вы можете рассмотреть возможность записи цикла вместо использования синтаксиса списка , используемого выше:
l = ['a', 'ab', 'abc', 'bac']
result = []
for s in l:
if 'ab' in s:
result.append(s)