对于一个列表中的多个字典进行去重
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 版权协议,转载请附上原文出处链接和本声明。