dct={'a':3,'b':1,'c':1,'d':1,'e':2,'f':2}
for key in dct.values():
#code
我无法找到一个方法来删除所有具有相同价值观的钥匙,我的输出应该是:删除所有值的多个occurence键在Python
{“一”:3}
基本上我只希望有除去值的多次出现一个字典,该值没有特别1或2可以是任何#
dct={'a':3,'b':1,'c':1,'d':1,'e':2,'f':2}
for key in dct.values():
#code
我无法找到一个方法来删除所有具有相同价值观的钥匙,我的输出应该是:删除所有值的多个occurence键在Python
{“一”:3}
基本上我只希望有除去值的多次出现一个字典,该值没有特别1或2可以是任何#
尝试此字典理解:
new_dct = {k: v for k, v in dct.items() if list(dct.values()).count(v) <= 1}
这不会从您的原始字典中删除,但会生成一个新的字典,其中只有键值和值不会在原始字典中重复。 *
*:请注意,在Python 3.x都有dict
的values()
method对象返回view object,而在Python 2.x中它returns a normal list
对象。因此在这里需要调用list()
以便使用count()
列表方法,因为OP使用的是Python 3.x.如果您使用的是Python 2.x,则可以直接删除list()
调用,然后直接拨count()
dct.values()
。
简单的解决方案
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)
的可能的复制[从Python字典中删除项目的最佳方式?(http://stackoverflow.com/questions/5447494/best-way-to-remove- – Aravind