Поиск по словам из list

name = 'Корова на столе'
last = '~'

inp = 'Корова + столе'.replace(' ', '').split('+')
if any(x.lower() in name.lower() for x in inp):
    print(name)

Тут мой код и как мне сделать так чтобы он брал только тогда когда в name указано все 2 слова из inp а если

name = 'Корова' чтоб он пропускал

и еще один вариант

name = 'Корова'
last = 'на столе'

inp = 'Корова + столе'.replace(' ', '').split('+')

Если допустим что в name и last есть эти два слова он должен братьк


Ответы (1 шт):

Автор решения: Алексей Р

Можно использовать пересечение множеств

name = 'Корова на столе'
inp = 'Корова + столе'.replace(' ', '').split('+')
if len(set(inp).intersection(name.split())) == len(inp):
    print(name)

Если нужно регистронезависимое сравнение, код нужно модифицировать, приведя строки к одному регистру

→ Ссылка