查找出现多次的值的键

时间:2015-10-10 06:54:29

标签: python dictionary

我有一本字典如下:

mydict ={1:'apple',2:'banana',3:'banana',4:'apple',5:'mango'}

我想计算一个列表,其中包含多次出现的值的所有键:

mylist = [1,2,3,4]

'mango'仅显示一次,因此5中不存在键mylist

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:6)

您可以使用Counter执行此操作:

>>> from collections import Counter 
>>> c = Counter(mydict.values())
>>> [k for k, v in mydict.items() if c[v] > 1]
[1, 2, 3, 4]

答案 1 :(得分:2)

在python 2.7上,小字典的简单方法。更好的解决方案,使用collections.Counter。

>>> [k for k, v in mydict.items() if mydict.values().count(v) > 1]
[1, 2, 3, 4]