Лучшая логика для проверки содержимого строки - PullRequest
1 голос
/ 20 января 2012

У меня есть список элементов HTML, которые имеют некоторый текст. Мне нужно найти элементы, в которых есть все слова, которые я собираюсь передать. У меня есть код, который выполнил то, что я хочу, но я уверен, что есть лучший способ сделать это

myWords=['some', 'supplied','words']
theTextContents='a string that might or might not have all of some supplied words'
goodElements=[]
count=0
for word in myWords:
    if word in TheTextContents:
    count+=1
if count==len(myWords):
    goodElements.append(theTextContents)

Существует намного больше кода, но это основной способ, которым мы тестируем, чтобы увидеть, все ли слова в MyWords находятся в TextContent. Мне кажется, что это слишком неуклюже, чтобы быть хорошим кодом Python

Любая идея будет принята с благодарностью

Ответы [ 3 ]

7 голосов
/ 20 января 2012
if set(theTextContents.split()) >= set(myWords):
    ...
5 голосов
/ 20 января 2012
if all(word in theTextContents.split() for word in myWords):
    ...

all функция в Python 2.5 +

3 голосов
/ 20 января 2012

попробовать:

myWords=['some', 'supplied','words']
theTextContents='a string that might or might not have all of some supplied words'
goodElements=[]

splitted = theTextContents.split()
if all(word in splitted for word in myWords):
    goodElements.append(theTextContents)
...