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

Dynamic if statement based on user input

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

对于列表中的 return 个特定项目,我使用以下带有 if 语句的 for 循环:

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

上面的代码将 return 列出列表中包含单词 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 个关键字怎么办?我需要做什么来创建一个动态的 if 语句,根据输入的长度添加 and 条件?到目前为止,我无法理解这个问题。

all(iterable) returns True 如果 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])

您可以向用户询问逗号分隔的关键字,然后使用

 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])