遍历多个字典组成的列表,将字典按目标key的值等或不相等分类,放进新的列表,实现字典key:value的索引

来源:互联网 发布:java代码短信发送demo 编辑:程序博客网 时间:2024/05/16 19:42
多个字典组成的列表,实现按目标key的值进行分类,生成新的列表。
代码如下:
字典:
d1 = {'a': 1, 'b': 2, 'c': 3}d2 = {'a': 1, 'b': 2, 'e': 4}d3 = {'a': 1, 'b': 5, 'g': 8}d4 = {'a': 2, 'b': 5, 'gg': 6}
结果要求:
{'a_all': [
{'a': 1, 'all': [{'a': 1, 'b': 2, 'c': 3}, {'a': 1, 'b': 2, 'e': 4}, {'a': 1, 'b': 5, 'g': 8}]},
{'a': 2, 'all': [{'a': 2, 'b': 5, 'gg': 6}]}
]}
代码如下:import collectionsdf = [d1, d2, d3, d4]list_a = []for index in range(0, len(df), 1):    aa = df[index]['a']    list_a.append(aa)# id 去重dc = collections.Counter(list_a)list_b = []for k in dc:    list_b.append(k)print(list_b)# a键识别连接list_all = []dict_all = {}for item1 in list_b:    dict_1 = {}    list_1 = []    for item_c in df:        print(item_c)        if item_c['a'] == item1:            list_1.append(item_c)            # print('OK')    # print(list_1)    dict_1['a'] = item1    dict_1['all'] = list_1    print('item1 new:', dict_1)    list_all.append(dict_1)dict_all['a_all'] = list_allprint(dict_all)
结果:
{'a_all': [{'a': 1, 'all': [{'a': 1, 'b': 2, 'c': 3}, {'a': 1, 'b': 2, 'e': 4}, {'a': 1, 'b': 5, 'g': 8}]}, 
{'a': 2, 'all': [{'a': 2, 'b': 5, 'gg': 6}]}]}
阅读全文
0 0
原创粉丝点击