【发布时间】:2013-01-25 10:55:39
【问题描述】:
基本上我只需要弄清楚如何从 Python 中的列表中生成模式(出现频率最高的数字),无论该列表是否具有多种模式?
类似这样的:
def print_mode (thelist):
counts = {}
for item in thelist:
counts [item] = counts.get (item, 0) + 1
maxcount = 0
maxitem = None
for k, v in counts.items ():
if v > maxcount:
maxitem = k
maxcount = v
if maxcount == 1:
print "All values only appear once"
if counts.values().count (maxcount) > 1:
print "List has multiple modes"
else:
print "Mode of list:", maxitem
但不是在“所有值只出现一次”或“列表有多种模式”中返回字符串,而是希望它返回它所引用的实际整数?
【问题讨论】:
-
啊,不,我已经看过了。我需要一些能产生模式并且只产生模式的东西,而不是其他整数以及它们出现的频率?
-
所以你只想返回列表中元素的频率
-
@hayleyelisa 那么就拿最高数的那一个
-
不,如果有多个模式,我需要它返回多个模式?