查找并统计一个字典(key-value)中重复的value及其出现的次数;对于重复的value,除了第一次出现的键值对,删除其他剩余重复的键值对,输出结果字典

处理一个给定长度的字典,包含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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值