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

如何对Python嵌套字典(Nested Dictionaries)进行指定子集提取?

提取嵌套字典中的指定子集

需求说明

需要从给定的嵌套字典original中,提取每个Tricluster对应的Data字段,构建成结构更简洁的new_dictionary。

原始字典

original = {"Triclusters":{"0":{"%Missings":"0","ColumnPattern":"Constant","Data":
                               {"0":[["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]
                                     ,["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72",
                                                                         "-1.72"]],
                                "1":[["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]
                                     ,["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]],
                                "2":[["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]
                                     ,["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]]},
                               "#contexts":3,"PlaidCoherency":"No Overlapping","%Errors":"0","%Noise":"0",
                               "X":[0,2,3,4],"ContextPattern":"Constant","Y":[0,2,6,7],
                               "RowPattern":"Constant","Z":[0,1,2],"#rows":4,"#columns":4},
                          "1":{"%Missings":"0","ColumnPattern":"None","Data":{"0":[["-3.52","-9.34","-9.04","-2.56"],
                                                                                   ["-3.52","-9.34","-9.04","-2.56"]
                                                                                   ,["-3.52","-9.34","-9.04","-2.56"]
                                                                                   ,["-3.52","-9.34","-9.04","-2.56"]],
                                                                              "1":[["7.04","-2.13","2.04","5.09"],
                                                                                   ["7.04","-2.13","2.04","5.09"],
                                                                                   ["7.04","-2.13","2.04","5.09"],
                                                                                   ["7.04","-2.13","2.04","5.09"]],
                                                                              "2":[["2.17","5.93","-5.47","-8.74"],
                                                                                   ["2.17","5.93","-5.47","-8.74"],
                                                                                   ["2.17","5.93","-5.47","-8.74"],
                                                                                   ["2.17","5.93","-5.47","-8.74"]]},
                               "#contexts":3,"PlaidCoherency":"No Overlapping","%Errors":"0","%Noise":"0",
                               "X":[0,1,2,3],"ContextPattern":"None","Y":[1,3,4,9],"RowPattern":"Constant",
                               "Z":[0,1,2],"#rows":4,"#columns":4}},"#DatasetMinValue":-10,"#DatasetColumns":10,
           "#DatasetContexts":3,"#DatasetMaxValue":10,"#DatasetRows":5} 

目标字典结构

new_dictionary = {"0":{"0":[["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]
                                    ,["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]],
                               "1":[["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]
                                    ,["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]],
                               "2":[["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]
                                    ,["-1.72","-1.72","-1.72","-1.72"],["-1.72","-1.72","-1.72","-1.72"]]},
                          "1":{"0":[["-3.52","-9.34","-9.04","-2.56"],["-3.52","-9.34","-9.04","-2.56"],
                                    ["-3.52","-9.34","-9.04","-2.56"],["-3.52","-9.34","-9.04","-2.56"]],
                               "1":[["7.04","-2.13","2.04","5.09"],["7.04","-2.13","2.04","5.09"],
                                    ["7.04","-2.13","2.04","5.09"],["7.04","-2.13","2.04","5.09"]],
                               "2":[["2.17","5.93","-5.47","-8.74"],["2.17","5.93","-5.47","-8.74"],
                                    ["2.17","5.93","-5.47","-8.74"],["2.17","5.93","-5.47","-8.74"]]}}

实现方案

方法一:字典推导式(简洁高效)

直接通过字典推导式遍历original["Triclusters"]的键值对,提取每个子字典中的Data字段:

new_dictionary = {cluster_id: cluster_info["Data"] for cluster_id, cluster_info in original["Triclusters"].items()}

方法二:循环遍历(适合新手理解)

通过显式循环逐个提取并添加到新字典:

new_dictionary = {}
# 遍历每个Tricluster的ID和对应数据
for cluster_id, cluster_info in original["Triclusters"].items():
    # 提取当前Tricluster的Data部分,存入新字典
    new_dictionary[cluster_id] = cluster_info["Data"]

两种方法都能精准提取所需数据,最终得到目标结构的字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:10:28