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

时间:2016-11-22 13:28:33

标签: python-3.x

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

for key in dct.values():
    #code

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

{ 'A':3}

基本上我只想要删除多次出现值的字典,值不是特定的1或2它可以是任何#

2 个答案:

答案 0 :(得分:2)

试试这个词典理解:

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

这不会从原始字典中删除,但会生成一个新字典,其中只包含原始字典中不重复值的键和值。 *

*:请注意,在Python 3.x中,dictlist()个对象返回values() method,而在Python 2.x中,view object个对象返回returns a normal list。因此,需要在此处调用count()以使用list()列表方法,因为OP使用的是Python 3.x.如果您使用的是Python 2.x,则只需删除count()来电,然后直接在dct.values()上致电String pattern = getPattern();

答案 1 :(得分:0)

简易解决方案

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)