найдите слово, которое должно присутствовать в начале слов в другой строке, используя python

#python #keyword-search

#python #ключевое слово-поиск

Вопрос:

Я пытаюсь выполнить поиск по списку слов в другой строке. Я использую приведенный ниже код

 >>> word='abc present'
>>> each='abctotech present'    
>>> (all(x in each.split() for x in word.split()))
False
  

В приведенном выше примере я получаю результат как «False», но слово «abc» является начальной частью одного слова в строке, каждое из которых является «abctotech»

Есть ли другой способ, который я могу использовать, чтобы вернуть значение «True» для вышеупомянутого сценария. Пожалуйста, дайте совет.

Комментарии:

1. @hansolo, большое спасибо за ваш ответ, это сработало для данного сценария, но если я изменю строку each на «each =’toabctotech present’ «, результаты по-прежнему выводятся как «True», я хочу выполнить поиск слова, если оно присутствует в начале слов, доступных в другой строке

2. Используйте список в качестве результата для all вместо генератора: all([ x in each for x in word.split() ])

3. @hansolo, большое вам спасибо. Ваше предложение работает отлично

Ответ №1:

Вы могли бы проверить, any что strings в each начинается с того, что в words нравится,

 >>> each
'abctotech present'
>>> word
'abc present'
>>> all(any(y.startswith(x) for y in each.split()) for x in word.split())
True
>>> each1
'toabctotech present'
>>> all(any(y.startswith(x) for y in each1.split()) for x in word.split())
False