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上测试了这一点,它可以工作。