我有一個列表,其中包含幾個鍵和值,每個鍵和值都有自己的關鍵字存儲在其中。為了只返回列表中的特定項目,我將以下 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根據輸入的長度添加條件?到目前為止,我無法理解這一點。
2 回答

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
您可以向用戶詢問逗號分隔的關鍵字,然后使用類似
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])

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
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])
添加回答
舉報
0/150
提交
取消