代码:
words = ['apple', 'pear', 'tree']
title = 'Hi my name is Bob'
if title in words:
#do something
我希望能够检查我的标题是否包含这些 words
,如果是,则会发生一个操作,但我遇到了此错误,我不确定它的含义或如何进行修复这个。
答案 0 :(得分:2)
你需要的是这个:
words = ['apple', 'pear', 'tree']
title = 'Hi my name is Bob'
if any(word.casefold() in words for word in title.split()):
#do something
这会将 title
拆分为空格处的一系列单词,然后检查其中是否有任何出现在 words
列表中。
请注意,它使用 foldcase 方法将每个单词转换为小写,因此如果 apple
或 Apple
在您的 title
中,它会起作用
如果单词列表或标题很大,或者您经常进行此检查,您可能会发现使用集合会更有效:
words = {'apple', 'pear', 'tree'}
title = 'Hi my name is Bob'
if {word.casefold() for word in title.split()} & words:
#do something
这会将 title
转换为一组小写单词 - 并与 words
组进行交集。如果该交集包含至少一个单词,它只会do something
。如果 title
和 words
没有共同的条目,则交集将为空集,条件为 False。