我有一个列表,其中包含几个键和值,每个键和值中都存储有自己的关键字。
要只返回列表中的特定项目,请使用以下带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语句,我需要做什么?到目前为止,我仍然无法解决这个问题。
答案 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])