首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用itemgetter迭代特定的字典键

使用itemgetter迭代特定的字典键
EN

Stack Overflow用户
提问于 2020-04-16 09:38:49
回答 1查看 26关注 0票数 0

我有一个折页结构的二进制位:

代码语言:javascript
复制
global_results = {
                  'group1': {
                             'Assessnent': "PASSED"
                             ...
                             },
                  'group2': {
                             'Assessment': "PASSED"
                             ...
                             },
                   ...
                  }

关键是我不知道我有多少组,我需要检查是否所有的评估=“通过”了

到目前为止,我已经做了以下工作,但看起来很难看

代码语言:javascript
复制
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对于简化代码是有用的。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-16 09:50:50

您可以使用all()函数来避免计数部分:

代码语言:javascript
复制
if all(group["Assessment"] == "PASSED" for group in global_results.values()):
    global_results["FINAL"] = "PASSED"
else:
    global_results["FINAL"] = "FAILED"

除了一些可以完成的简化之外,您自己的代码都很好,比如循环值而不是键,并且可以使用dict本身的len

代码语言:javascript
复制
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"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61247132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档