You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python检查嵌套字典所有status值是否均为1的最优方法

检查嵌套字典中所有子字典status是否全为1的最优方法

最优方法是用Python内置的all()函数搭配生成器表达式,这写法既简洁又高效,还符合Python的惯用风格。

核心代码示例

data =  {
            '1234': {'jid':1341, 'msg':'' , 'status':0},
            '5678': {'jid':1342, 'msg':'' , 'status':1},
            '1112': {'jid':1343, 'msg':'' , 'status':0},
            '1314': {'jid':1344, 'msg':'' , 'status':1}
        }

# 检查所有子字典的status是否全为1
all_status_1 = all(sub_dict['status'] == 1 for sub_dict in data.values())
print(all_status_1)  # 输出False,因为存在status为0的项

为什么这是最优解?

  1. 短路求值:all()会在遍历过程中一旦发现某个子字典的status不等于1,就立刻停止遍历并返回False,和你手动设置标志位的效率完全一致,但代码更简洁。
  2. 可读性强:一行代码就清晰表达了"所有子字典的status都等于1"的逻辑,不需要额外的循环和标志变量。
  3. 兼容性好:适用于所有Python版本,是处理"全满足"类判断的标准写法。

额外处理:防止子字典缺失status键

如果担心部分子字典可能没有status键,可以用get()方法避免KeyError:

all_status_1 = all(sub_dict.get('status') == 1 for sub_dict in data.values())

这种情况下,缺失status的子字典会被判定为不满足条件(因为get()返回None,None不等于1)。

内容的提问来源于stack exchange,提问作者Ira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:20:35