Python - 代码有效,但我不知道为什么

Python - code works, but I don't know why

基本上,我希望有人能简单介绍一下这段 python 代码的工作原理。非常感谢

变量:

kw1 = ['keyword1', 'keyword2']

problem = input("Detect keywords from list\n")

主要内容:

if set(kw1).intersection(problem.split()):

print(" Kw found. ")

else:

print(" Keywords not found. ")

那里有很多东西。

首先,当您调用 input 时,您要求用户为您提供输入字符串。

当您在其上使用 split() 时,通过根据空格分隔输入字符串,将其转换为字符串列表,因此 "bla bli blo".split() 为您提供 ["bla","bli","blo"]

然后,当您调用 set(my_list) 时,它会将 my_list 转换为 set,这是一个没有任何重复的数学构造,它响应unionintersection 等运算符。

最后,当您将您的集合(通过拆分用户输入制成)与关键字列表进行比较时,如果没有匹配项(那么列表中 none 的关键字直接出现在用户输入中),然后它会给你一个空集,if 将其视为 false。所以 if set(["bla","bli","blo"]).intersection(["blu"]) 不会激活,但 if set(["bla","bli","blo"]).intersection(["blu","blo"]) 会激活,因为它不是空集。

注意,如果你想识别单词中的关键词,这种方法是行不通的。例如,如果您正在寻找关键字 kw1=['car','truck','bike'] 并且用户输入 cars trucks bikes,关键字的 none 将被识别,因为 split() 将沿着空格分开,给你 ['cars','trucks','bikes']'cars'!='car'...