【发布时间】:2022-11-24 06:17:13
【问题描述】:
我有一段代码,我正在通过字典迭代查找找到的关键字以及找到每个关键字的次数。如果找到关键字,则 if 语句起作用并返回预期的输出。但是,当没有找到关键字时,else 语句不起作用,它应该返回“找不到关键字”。这看起来很简单,但我无法理解为什么这不起作用。我对编码还很陌生,所以如果这看起来非常基础,我深表歉意。
这是我正在使用的代码块:
with open(keyword_file_path, 'r') as file:
data = file.read()
kw_found = {}
for keyword in keywords:
found = re.findall(keyword, data, re.I)
if found:
kw_found[keyword] = len(found)
for key in kw_found.keys():
if key in kw_found.keys():
width = max(len(x) for x in key)
output_fp.write("{0:<{1}} : {2}\n".format(key, width, kw_found[key]))
else:
output_fp.write("No Keywords Found\n")
if 语句有效,如果它确实找到了预定义的关键字,我们会得到以下输出:
狗:5
猫:2
鸟:100
当它没有找到关键字时应该发生的是返回“No Keywords Found”;但是,它只是不返回任何内容。没有报告错误,所以如果我理解正确的话,它似乎永远不会将 else 语句视为 True 。
任何让这个工作的建议将不胜感激!提前谢谢你!
【问题讨论】:
-
keywords的值是多少? -
你的
keyword_file_path文件是什么样子的? -
循环
for key in kw_found.keys():然后检查if key in kw_found.keys()总是会是真的..
标签: python dictionary if-statement