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

Python中遍历嵌套字典实现按错误码分组PC并统计数量的方法

解决方案:按错误码分组PC并统计数量

嘿,我来帮你搞定这个需求!这里有两种实现方式,都能完美完成提取相同错误码的PC列表、统计数量的任务:

基础实现(无需额外库)

这种写法不需要导入任何第三方库,完全用Python原生语法实现,适合新手理解逻辑:

# 你的原始嵌套字典数据
pc_errors = {'PC1': {'error': 'NOT_ENOUGH_RAM'}, 'PC2': {'error': 'POWER_FAILURE'}, 'PC3': {'error': 'POWER_FAILURE'}}

# 创建空字典,用来存储「错误码: 对应PC列表」的映射
error_groups = {}

# 遍历每个PC的错误信息
for pc_name, error_details in pc_errors.items():
    error_code = error_details['error']
    # 如果当前错误码还没在分组字典里,先初始化一个空列表
    if error_code not in error_groups:
        error_groups[error_code] = []
    # 将PC名称添加到对应错误码的列表中
    error_groups[error_code].append(pc_name)

# 按照要求的格式输出结果
for error_code, pc_list in error_groups.items():
    pc_count = len(pc_list)
    print(f"'{error_code}', {pc_list}, {pc_count}")

代码逻辑说明

  1. 先定义你的原始数据pc_errors;
  2. 初始化error_groups字典,用来做错误码和PC列表的映射;
  3. 遍历原始数据的每一项,提取错误码,把PC名称归类到对应错误码的列表中;
  4. 最后遍历分组后的字典,计算每个列表的长度(也就是PC数量),并按指定格式打印。

简洁实现(用collections.defaultdict)

如果你想让代码更简洁,可以用Python标准库中的defaultdict,它会自动为不存在的键创建默认值(这里是空列表),省去手动判断的步骤:

from collections import defaultdict

# 原始数据
pc_errors = {'PC1': {'error': 'NOT_ENOUGH_RAM'}, 'PC2': {'error': 'POWER_FAILURE'}, 'PC3': {'error': 'POWER_FAILURE'}}

# 用defaultdict自动初始化空列表
error_groups = defaultdict(list)

for pc_name, error_details in pc_errors.items():
    # 直接添加,无需判断键是否存在
    error_groups[error_details['error']].append(pc_name)

# 输出结果
for error_code, pc_list in error_groups.items():
    print(f"'{error_code}', {pc_list}, {len(pc_list)}")

运行结果

两种代码的输出都是你想要的格式:

'POWER_FAILURE', ['PC2', 'PC3'], 2
'NOT_ENOUGH_RAM', ['PC1'], 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:58:11