我試圖計算值的Python中的列表模式(最頻繁的值)。我想出了一個解決方案,無論如何都給出了錯誤的答案,但我後來意識到我的數據可能是多變的;計算模式在多模式列表在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 2.4
你真的應該升級到Python的支持的最新版本。 – 2012-07-22 09:08:18