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,这是一个没有任何重复的数学构造,它响应union、intersection 等运算符。
最后,当您将您的集合(通过拆分用户输入制成)与关键字列表进行比较时,如果没有匹配项(那么列表中 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'
...
基本上,我希望有人能简单介绍一下这段 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,这是一个没有任何重复的数学构造,它响应union、intersection 等运算符。
最后,当您将您的集合(通过拆分用户输入制成)与关键字列表进行比较时,如果没有匹配项(那么列表中 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'
...