Skip to main content
 首页 » 编程设计

Python之列表中的最佳匹配

2025年05月04日15kevingrace

这可能是一个简单的脚本,但似乎无法在 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)。