这可能是一个简单的脚本,但似乎无法在 Google 上找到列表。我有一个包含单词的列表,然后是一个短语。我想将列表中的单词与短语匹配,然后如果不匹配则返回 false。我将如何使用 Python 来处理它?</p>
例子:
list = ["hello", "word", "game", "challenge", "play"]
phrase = "play game"
if 'any combination from list' == phrase:
return True
else:
return False
请您参考如下方法:
由于可能的排列数量非常多,最好颠倒你的逻辑,检查短语中的每个单词是否都在你的列表中。
words = {"hello", "word", "game", "challenge", "play"}
phrase = "play game"
return all(word in words for word in phrase.split())
我们可以使用 the all() built-in function 轻松实现这一目标, 和一个 generator expression .
我们用 str.split() 将短语拆分为单词,然后检查每个单词是否在words中(变量名list砸了内置的list()函数,应该不能使用)。
还要注意集合的变化,因为集合的成员测试比列表快得多。由于长短语可能会在此函数中进行多次成员资格测试,因此我们希望该操作尽可能高效。
集合文字只使用花括号而不是方括号 - 如果您有一个现有列表,而不是文字,您可以只使用 the set() built-in function构建一个集合。例如:words = set(some_list)。
