Python 查找多次出现的值的键

Python 查找多次出现的值的键,python,dictionary,Python,Dictionary,我有一本字典如下: mydict ={1:'apple',2:'banana',3:'banana',4:'apple',5:'mango'} 我想计算一个列表,其中包含多次出现的值的所有键: mylist = [1,2,3,4] 值'mango'只出现一次,因此键5不在mylist中 如何实现这一点?在Python2.7上,小目录的简单方法。更好的解决方案是使用collections.Counter >>> [k for k, v in mydict.items() if

我有一本字典如下:

mydict ={1:'apple',2:'banana',3:'banana',4:'apple',5:'mango'}
我想计算一个列表,其中包含多次出现的值的所有键:

mylist = [1,2,3,4]
'mango'
只出现一次,因此键
5
不在
mylist


如何实现这一点?

在Python2.7上,小目录的简单方法。更好的解决方案是使用collections.Counter

>>> [k for k, v in mydict.items() if mydict.values().count(v) > 1]
[1, 2, 3, 4]
您可以使用来执行此操作:

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

您想要
mydict.keys()
?或者,为了在Python 3中获得一个真正的列表,
list(mydict)
?我想他想要所有出现多次的值的键
'mango'
只出现一次,并且键
5
不存在。是的,我只需要它。所有具有相同值(如2和3)的键都具有相同的值。1和4相同value@jonrsharpe-介意我们回滚或更新这些编辑吗?我已经做了一系列修改,您的编辑覆盖了这些修改(我们必须同时进行编辑)。唯一的问题是,它每次看到每个值都要计算
计数。好吧,它会引发
AttributeError:“dict_values”对象在Python 3.5上没有属性“count”
(这有关系吗?),也许可以用柜台。也许这应该是一个评论。在Python2.7上工作得很好好好,我刚刚在Python2.7上测试了这一点,它可以工作。