我正在尝试在Python中计算一组值的众数(最常出现的值)。我提出了一个解决方案,但结果是错误的。后来我意识到我的数据可能具有多个众数;
我认为问题在于我输出的是值而不是最大值的指针。无论如何,有人可以建议一种更好的方法来处理存在多个众数的情况吗?或者如果失败了,我该如何修复已有的代码并找出单个众数?
正如你可能已经注意到的,我很新手,感谢您的帮助。
编辑:应该提到我使用的是Python 2.4版本。
ie 1,1,2,3,4,4 mode = 1 & 4
这是我目前想到的:
def mode(valueList):
frequencies = {}
for value in valueList:
if value in frequencies:
frequencies[value] += 1
else:
frequencies[value] = 1
mode = max(frequencies.itervalues())
return mode
我认为问题在于我输出的是值而不是最大值的指针。无论如何,有人可以建议一种更好的方法来处理存在多个众数的情况吗?或者如果失败了,我该如何修复已有的代码并找出单个众数?
正如你可能已经注意到的,我很新手,感谢您的帮助。
编辑:应该提到我使用的是Python 2.4版本。