zoukankan      html  css  js  c++  java
  • 需求-shidebing

    # 原始数据
    list1 = [
        {"c_id": "101", "e_code": "201"},
        {"c_id": "102", "e_code": "202"},
        {"c_id": "103", "e_code": "201"},
        {"c_id": "104", "e_code": "204"},
        {"c_id": "105", "e_code": "204"},
    ]
    # 变形后的目标数据
    list2 = [
        {'201':
             [{"c_id": "101", "e_code": "201"},
              {"c_id": "103", "e_code": "201"}, ]
         },
        {'202':
             [{"c_id": "102", "e_code": "202"}, ]
         },
        {"204":
             [{"c_id": "104", "e_code": "204"},
              {"c_id": "105", "e_code": "204"}, ]
         }
    ]
    
    e_code_val_list = []
    new_data = []
    # 遍历原始数据list1,获取e_code的值列表
    for dict_new in list1:
        # print()
        for k, v in dict_new.items():
            # print("%s=%s" % (k, v))
            if k == "e_code":
                e_code_val_list.append(v)
    
    print("=========0==========")
    # "e_code"值去重
    e_code_val_list = list(set(e_code_val_list))
    print(e_code_val_list)
    
    print("=========1==========")
    # 根据e_code的值分类,遍历原始数据list1,
    for val in e_code_val_list:
        new_data.append({val: []})
    print(new_data)
    
    print("=========2==========")
    # 构建目标数据
    for dict_new in new_data:
        # print(dict)
        for k_e_c, v_list in dict_new.items():
            # print(k_e_c)
            for dict_old in list1:
                # print(dict)
                for k, v in dict_old.items():
                    if k == "e_code" and v == k_e_c:
                        dict_new[k_e_c].append(dict_old)
    
    print(new_data)
    

      

    输出:

    =========0==========
    ['204', '201', '202']
    =========1==========
    [{'204': []}, {'201': []}, {'202': []}]
    =========2==========
    [{'204': [{'c_id': '104', 'e_code': '204'}, {'c_id': '105', 'e_code': '204'}]}, {'201': [{'c_id': '101', 'e_code': '201'}, {'c_id': '103', 'e_code': '201'}]}, {'202': [{'c_id': '102', 'e_code': '202'}]}]
    

      

  • 相关阅读:
    今发现“最全前端资源汇集”,果断收藏
    js基础
    重排版与重绘
    小乌龟的配置
    考试网站
    苹果手机上时间的兼容
    自定义alert
    [概率dp] 流浪地球
    [权值线段树] 1163B2 Cat Party (Hard Edition)
    [单调栈]1156E Special Segments of Permutation
  • 原文地址:https://www.cnblogs.com/andy9468/p/9726458.html
Copyright © 2011-2022 走看看