基于用户输入的动态if语句

时间:2019-01-24 17:46:07

标签: python loops if-statement input conditional

我有一个列表,其中包含几个键和值,每个键和值中都存储有自己的关键字。

要只返回列表中的特定项目,请使用以下带if语句的for循环:

reduced_docs = []
for arg in reduced_docs:
    if 'amazon' in arg[1] and 'google' in arg[1]:
        print(arg[0])

上面的代码将为我返回列表中包含单词amazon和google的所有项目。这行得通,但是如您所见,它已经被硬编码了,我会这样:

 reduced_docs = []
    keyword = input('enter your keywords:') keyword1 keyword2
     for arg in reduced_docs:
            if keyword in arg[1] and keyword in arg[1]:
                print(arg[0])

如您在上面的示例代码中看到的那样,它不再经过硬编码,但是如果我有3个关键字或4或5,该怎么办?创建基于输入长度的and条件的动态if语句,我需要做什么?到目前为止,我仍然无法解决这个问题。

2 个答案:

答案 0 :(得分:1)

如果True的所有元素都为true,则

all(iterable)返回iterable

与此同时使用generator expression

keywords = input('enter your keywords:').split()
for arg in reduced_docs:
    if all(keyword in arg[1] for keyword in keywords):
        print(arg[0])

答案 1 :(得分:1)

您可以要求用户输入逗号分隔的关键字,然后使用类似的

 reduced_docs = []
    keywords = input('enter your keywords comma separated:')
     for arg in reduced_docs:
         to_print = []
         for keyword in keywords.split(","):
            to_print.append(keyword in arg[0])
         if all(to_print):
            print(arg[1])