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

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


为了只返回列表中的特定项目,我将以下 for 循环与 if 语句一起使用:


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 个关键字呢?我需要做什么来创建一个动态的 if 语句,and根据输入的长度添加条件?到目前为止,我无法理解这一点。


慕妹3146593
浏览 189回答 2
2回答

慕哥9229398

您可以向用户询问逗号分隔的关键字,然后使用类似 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])

素胚勾勒不出你

all(iterable)True如果 的所有元素iterable都为真,则返回。一起使用生成器表达式:keywords = input('enter your keywords:').split()for arg in reduced_docs:    if all(keyword in arg[1] for keyword in keywords):        print(arg[0])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python