我有一个具有以下结构的字典:
global_results = {
'group1': {
'Assessnent': "PASSED"
...
},
'group2': {
'Assessment': "PASSED"
...
},
...
}
问题是我不知道我有多少个小组,我需要检查是否所有的 assessments =“ 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
对简化代码很有用。谢谢
答案 0 :(得分:1)
您可以使用all()
函数来避免计数:
if all(group["Assessment"] == "PASSED" for group in global_results.values()):
global_results["FINAL"] = "PASSED"
else:
global_results["FINAL"] = "FAILED"
您可以使用自己的代码,但可以进行一些简化,例如循环使用值而不是键,以及可以使用字典本身的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"