处理一个给定长度的字典,包含n个Key-value。已知这里面会有一定的重复数值(value值相同,key不相同)
1. 找出所有重复的value,并且输出重复的次数。
2. 去掉重复的value,只保留第一个查到的key-value,输出去重以后的字典。
# 原始字典
dictionary_orig = {'a':1, 'b':2, 'c':3,'d':3,'e':3,'f':2,'g':4,'h':4}
# 统计所有value的次数
all_vlaue={}
for k,v in dictionary_orig.items():
if v in all_vlaue:
all_vlaue[v]=all_vlaue.get(v)+1
else:
all_vlaue[v]=1
print(all_vlaue)
# 删除出现一次的value
repeat_vlaue={}
for k,v in all_vlaue.items():
if v!=1:
repeat_vlaue[k]=v
print(repeat_vlaue)
#删除重复的value,只保留第一次出现的
dictionary_result={}
for k,v in dictionary_orig.items():
if(all_vlaue.get(v)==1):
dictionary_result[k] = v
if((all_vlaue.get(v)>=2) & (all_vlaue.get(v)== repeat_vlaue.get(v))):
dictionary_result[k] = v
all_vlaue[v] = all_vlaue.get(v) + 1
print(dictionary_result)