Найти - Пользователи
Полная версия: Задать несколько параметров для проверки условия при генерации списка
Начало » Python для новичков » Задать несколько параметров для проверки условия при генерации списка
1
Smth_unoriginal
Здравствуйте!

Очень мучает один вопрос.

У меня есть список из строк (=предложений). И надо выбрать из него все элементы, в которых встречаются отдельные слова.
original=['Three white sheep.', 'This is a snow white.', 'many years ago', 'one two three four.']
result=[item for item in original if 'white' in item or 'years' in item]

Соответственно в этом примере результатом является список из трех элементов


Можно ли это покрасивей написать?
Чтобы каждый раз в условии не указывать элемент ( if ‘white’ in item or ‘years’ in item), в котором должны встретиться необходимые слова (“white” и “years”).

Заранее благодарю за любую подсказку/помощь
JOHN_16
С ходу могу такое предложить. может и не самое красивое, но по практичнее будет
original = ['Three white sheep.', 'This is a snow white.', 'many years ago', 'one two three four.']
words = ['white', 'years']
result = [item for item in original if any(map(lambda x: x in item, words))]
old_monty
Тоже предлагаю с использованием lambda для фильтрации
original =  ['Three white sheep.', 'This is a snow white.', 'many years ago', 'one two three four.']
myfilter = lambda x, s1, s2: s1 in x or s2 in x
result = [item for item in original if myfilter(item, 'white', 'years')]
py.user.next
Smth_unoriginal
У меня есть список из строк (=предложений). И надо выбрать из него все элементы, в которых встречаются отдельные слова.
re.findall() + set.intersection(), иначе будешь находить the в theater.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB