Python 3:如何在字典中找到出现次数最多的值?

Python 3:如何在字典中找到出现次数最多的值?,python,python-3.x,loops,dictionary,for-loop,Python,Python 3.x,Loops,Dictionary,For Loop,我正试图制作一个程序,当给我这样一个命令时- sports_played={sam:baseball,john:tennis,dan:tennis,joe:cricket,drew:tennis,mark:baseball} 应归还网球,即比赛次数最多的运动,即目录中出现最多的价值 如果问题中有问题,请提前道歉。这是我的第一个问题。如果我们假设食客是一本字典,那么: eaters={'chicken':5,'meat':7,'rice':3} max(eaters.values())

我正试图制作一个程序,当给我这样一个命令时-

    sports_played={sam:baseball,john:tennis,dan:tennis,joe:cricket,drew:tennis,mark:baseball}
应归还网球,即比赛次数最多的运动,即目录中出现最多的价值

如果问题中有问题,请提前道歉。这是我的第一个问题。

如果我们假设食客是一本字典,那么:

eaters={'chicken':5,'meat':7,'rice':3} 
max(eaters.values())
结果: 七,

在现实世界中,您不会使用循环来实现这一点

查看eaters中对您可用的内容

循环版本:

x=0
for i in eaters.values():
    if i > x:
        x = i
print i
7
如果要获取最大元素的键,即meat,可以使用以下代码:

>>> list(eaters.keys())[list(eaters.values()).index(max(eaters.values()))]
>>> 'meat'
如果您看一下dirdict,您将看到一个有趣的方法,可以在dict类/对象中使用,即dict.get

因此,如果在python解释器中键入helpdict.get,您将得到:

有关方法\u描述符的帮助:

得到。。。 D.getk[,D]>D[k]如果k在D中,则为D。d默认为无

因此,基本上dict.get将查看dict中是否存在键,并将其设置为d值default is None

所以,我们可以这样做:

eaters = {'chicken': 5, 'meat': 5, 'rice': 3}

counts = {}
for k in eaters.values():
    # If we find the k key in counts we add 1
    # If not set the count to 1
    counts[k] = counts.get(k, 0) + 1

print(counts)

>>> {3: 1, 5: 2}
所以,我们有一个dict,其中我们计算了食客dict的每个值出现的次数

最后,要获得eaters dict值的最大发生率,我们可以执行以下操作:

# get_max: temporar variable in which we stock the max
# val = will stock the key with the max value in counts dict
get_max, val = 0, 0
for k, v in counts.items():
    if v > get_max:
        get_max = v
        val = k
print(k)

>>> 5

为什么要任意限制不进口任何东西?这听起来像是家庭作业,你应该自己尝试。这是一个基本的家庭作业类型的问题。到目前为止,您做了什么?printmaxeaters.values事实上,这个问题被回答的可能性很低:您提供的一行代码是无效的Python代码,并且您没有显示任何研究工作。为了符合本网站的提问指南,请看一下。在回答之前,你能阅读上面的评论吗?这家伙在问你他的家庭作业的解决方案。我认为这是一种心理练习。如果你整天捣乱,脑力锻炼可以保持大脑清洁。不,因为网站的规定是:我的。。。你真的认为你能把那个人的问题和这个相比吗?你不知道这句话是怎么说的,告诉我们他累了什么,为什么不起作用?没有亲自尝试,他不会直接要求回答。此人尚未尝试,希望有人向其提供答案。理解区别:是的,因为我确实标记了它,但我仍然回答,因为这个人至少尝试过
# get_max: temporar variable in which we stock the max
# val = will stock the key with the max value in counts dict
get_max, val = 0, 0
for k, v in counts.items():
    if v > get_max:
        get_max = v
        val = k
print(k)

>>> 5