title.lower() in ['word1', 'word2', 'word3']
該檢查正是它說:無論title.lower()
,小寫title
,是單詞的列表。
這將情況無效title
是一個詞,例如:
>>> title = 'Word1'
>>> title.lower() in ['word1', 'word2', 'word3']
True
當然但當title
是包含多個單詞的句子實際這是行不通的。 title = 'Word1 foo bar'
永遠不會是該單詞列表的元素。
所以,你必須有它是否包含在title
字符串從您的單詞列表檢查每一個字:
>>> title = 'Word1 foo bar'
>>> 'word1' in title.lower()
True
>>> 'word2' in title.lower()
False
>>> 'word3' in title.lower()
False
你可以做,在一個循環,並儘快跳出來你打一個積極的結果:
>>> def titleContainsWords(title, words):
for word in words:
if word in title:
return True
return False
>>> wordlist = ['word1', 'word2', 'word3']
>>> titleContainsWords(title.lower(), wordlist)
True
這是這樣一個共同的東西,那也有一個較短的方式做同樣的事情,結合any()
函數發生器表達式:
>>> any(word in title.lower() for word in wordlist)
True
'title.lower()'不在'['word1','word2','word3']' –