在Python中删除多个值出现的所有键

Removing all the keys with multiple occurence of values in Python

1
2
3
4
dct={'a':3,'b':1,'c':1,'d':1,'e':2,'f':2}

for key in dct.values():
    #code

我找不到删除所有具有相同值的键的方法,我的输出应该是:

{ a:3 }

基本上,我只想删除一个有多个值出现的字典,该值不是1或2,它可以是任何#


尝试这个的理解:

1
new_dct = {k: v for k, v in dct.items() if list(dct.values()).count(v) <= 1}

这不会删除从您的原始字典的字典生成一个新的,但只有在键和值是不是在复制原来的价值在你的字典。

<注意> *子:在Python 3.x的values()dict对象方法返回视图对象A,而它在Python对象A list返回正常。四list()需要调用它在这里的count()阶使用列表法,因为手术是使用Python。如果你使用的是Python,你可以简单的把list()呼叫和呼叫直接在dct.values()count()></次。


简单的解决方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
dct={'a':3,'b':1,'c':1,'d':1,'e':2,'f':2}
d = {}
allu = [];
lulu = [];



for  k, v in dct.items():
  if v in allu:
    lulu.append(v)
  allu.append(v)  

d = dict(dct)
for k,v in d.items():
  if v in lulu:
    del dct[k]

print(dct)