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

时间:2016-09-25 19:49:27

标签: python-3.4

基本上我希望有人给我一个关于python代码如何工作的简单概述。非常感谢

vari:

kw1 = ['keyword1', 'keyword2']

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

主要:

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

print(" Kw found. ")

else:

print(" Keywords not found. ")

1 个答案:

答案 0 :(得分:3)

那里有很多东西。

首先,当你致电input时,你要求用户给你一个输入字符串。

当你对它使用split()时,你可以通过基于空格分隔输入字符串将其转换为字符串列表,以便"bla bli blo".split()为你提供["bla","bli","blo"]

然后,当您致电set(my_list)时,它会将my_list转换为,这是一个没有任何重复项的数学结构,它会响应像这样的运算符联合交叉点等等。

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

请注意,如果要识别单词中的关键字,此方法将无效。例如,如果您要查找关键字kw1=['car','truck','bike']而用户输入cars trucks bikes,则不会识别任何关键字,因为split()将沿空格分割,为您提供{{ 1}}和['cars','trucks','bikes'] ...