我有一个折页结构的二进制位:
global_results = {
'group1': {
'Assessnent': "PASSED"
...
},
'group2': {
'Assessment': "PASSED"
...
},
...
}关键是我不知道我有多少组,我需要检查是否所有的评估=“通过”了
到目前为止,我已经做了以下工作,但看起来很难看
for key in global_results.keys():
count=0
if global_results[key]["Assessment"] == "PASSED":
count += 1
if count == len(list(global_results.keys())):
global_results["FINAL"] = "PASSED"
else:
global_results["FINAL"] = "FAILED"我知道operator.itemgetter对于简化代码是有用的。谢谢
发布于 2020-04-16 09:50:50
您可以使用all()函数来避免计数部分:
if all(group["Assessment"] == "PASSED" for group in global_results.values()):
global_results["FINAL"] = "PASSED"
else:
global_results["FINAL"] = "FAILED"除了一些可以完成的简化之外,您自己的代码都很好,比如循环值而不是键,并且可以使用dict本身的len:
count = 0
for group in global_results.values():
if group["Assessment"] == "PASSED":
count += 1
if count == len(global_results):
global_results["FINAL"] = "PASSED"
else:
global_results["FINAL"] = "FAILED"https://stackoverflow.com/questions/61247132
复制相似问题