Я пытаюсь вычислить режим (наиболее частое значение) списка значений в Python. Я придумал решение, которое все равно дало неправильный ответ, но потом понял, что мои данные могут быть взаимно-многомодальными;
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, спасибо за помощь.
edit: должен был упомянуть, что я на Python 2.4