有一个Python的小问题想请教一下,如何去除字典里所有的重复values啊
例如{'1': a, '2': b, '3': b},过滤完只剩{‘1’:a},
感谢
?字典里本来就没有重复的key,新的b会替换掉旧的b
如果你是想只保留出现过一次的键.你可以加个计数,然后手动将出现两次以上的键的删掉
使用Counter函数先计数,通过新建一个值唯一字典来去除重复值的键值对,代码如下:
from collections import Counter
d = {'A': 20, 'B': 15, 'C': 20, 'D': 10, 'E': 20}
v=Counter(d.values())
n={}
for k,v in v.items():
if v==1:
m=[kk for kk,vv in d.items() if vv==k][0]
n[m]=k
print(n)
运行结果:
F:\2022\pythontest>t3
{'B': 15, 'D': 10}
如有帮助,请点采纳。
最简单的方法
你题目的解答代码如下:
dic = {'1':'a', '2':'b', '3':'b'}
li = list(dic.values())
for k,v in list(dic.items()):
if li.count(v) > 1:
del dic[k]
print(dic)
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
字典,由键和值组成,它们之间不能拆开。 删除了键或者值,都构不成字典。
例:
键:值
如果答案,您满意,请采纳意见,支持一下,谢谢!
json = {'1': 'a', '2': 'b', '3': 'b'}
keys = list(json.keys())
values = list(json.values())
length = len(json)
result = {}
for i in range(length):
if values.count(json[keys[i]]) > 1:
continue
result[keys[i]] = result.get(keys[i], values[i])
print(result)
有用的话采纳一下