найти список строк в списке строк, вернуть логическое значение - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь работать со списками строк в Python и почему-то не могу найти хорошее решение. Я хочу найти список строк в списке строк и вернуть логические значения:

import re
sentences = ['Hello, how are you?',
             'I am fine, how are you?',
             'I am fine too, thanks']
bits = ['hello', 'thanks']

re.findall(sentences, bits)

# desired output: [True, False, True]

Итак, я хочу получить массив логических значений с True, если строка предложений содержит один или несколько битов. Я тоже пробовал

bits = r'hello|thanks'

но я всегда получаю сообщение об ошибке «тип не определен:« список ». Я попытался преобразовать списки в массивы, но затем ошибка просто говорит: «не подлежащий обработке тип:« список ». Буду благодарен за любую помощь!

1 Ответ

1 голос
/ 31 марта 2019

Один из вариантов - использовать понимание вложенного списка:

sentences = ['Hello, how are you?',
             'I am fine, how are you?',
             'I am fine too, thanks']
bits = ['hello', 'thanks']

[any(b in s.lower() for b in bits) for s in sentences]
# returns:
[True, False, True]

Если вы хотите использовать регулярное выражение, вам нужно объединить bits с символом канала, но вам все равно нужно будет проверить каждое предложение в sentences по отдельности.

[bool(re.search('|'.join(bits), s, re.IGNORECASE)) for s in sentences]
# returns:
[True, False, True]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...