python3 对字典去重

  • Post author:
  • Post category:python




对于一个列表中的多个字典进行去重



1. 对key去重

将相同的key合并到一个字典中



2. 对元素去重

将一个字典的重复元素去重

代码如下:

# initializing list                                                                                                                                                                                                                          
 test_list = [{'uos': [22, 18, 3, 9], 'kylin': [32, 28, 1, 19],'wps': [12, 15, 6]},                                                                                                                                                           
              {'uos': [3, 8 ], 'wps': [6, 18, 12]},                                                                                                                                                                                           
              {'uos': [22, 33], 'yz': [9, 100]}]                                                                                                                                                                                              
                                                                                                                                                                                                                                              
 # printing original list                                                                                                                                                                                                                     
 print("The original list is : " + str(test_list))                                                                                                                                                                                            
                                                                                                                                                                                                                                              
 # Concatenate Similar Key values                                                                                                                                                                                                             
 res = dict()                                                                                                                                                                                                                                 
 for d in test_list:                                                                                                                                                                                                                          
     for list in d:                                                                                                                                                                                                                           
         #print("list:" + list, dict[list])                                                                                                                                                                                                   
         if list in res:                                                                                                                                                                                                                      
             res[list] += (d[list])                                                                                                                                                                                                           
         else:                                                                                                                                                                                                                                
             res[list] = d[list]                                                                                                                                                                                                              
                                                                                                                                                                                                                                              
 # printing result                                                                                                                                                                                                                            
 print("The concatenated dictionary : " + str(res))                                                                                                                                                                                           
                                                                                                                                                                                                                                              
 #Merge duplicate values                                                                                                                                                                                                                      
 resall = dict()                                                                                                                                                                                                                              
 for key in res:                                                                                                                                                                                                                              
     resall[key] = set(res[key])                                                                                                                                                                                                              
                                                                                                                                                                                                                                              
 print("The dictionary : " + str(resall))                                              

输出结果如下:

The original list is : [{'uos': [22, 18, 3, 9], 'kylin': [32, 28, 1, 19], 'wps': [12, 15, 6]}, {'uos': [3, 8], 'wps': [6, 18, 12]}, {'uos': [22, 33], 'yz': [9, 100]}]                                                                       
The concatenated dictionary : {'uos': [22, 18, 3, 9, 3, 8, 22, 33], 'kylin': [32, 28, 1, 19], 'wps': [12, 15, 6, 6, 18, 12], 'yz': [9, 100]}                                                                                                 
The dictionary : {'uos': {33, 3, 8, 9, 18, 22}, 'kylin': {32, 1, 19, 28}, 'wps': {18, 12, 6, 15}, 'yz': {9, 100}}



版权声明:本文为isangmeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。