我是python中的新手,需要一些帮助才能找到元组的模式。但是,我现在的代码只显示一种模式,我需要更改以显示多种模式(如果数字列表超过1)
import itertools
import operator
def mode_function2(lst):
return max(set(lst), key=lst.count)
答案 0 :(得分:4)
这有效:
from collections import Counter
def mode_function2(lst):
counter = Counter(lst)
_,val = counter.most_common(1)[0]
return [x for x,y in counter.items() if y == val]
以下是演示:
>>> mode_function2([1, 2, 2])
[2]
>>> mode_function2([1, 2, 2, 1])
[1, 2]
>>> mode_function2([1, 2, 3])
[1, 2, 3]
>>>
这里的重要概念是:
答案 1 :(得分:0)
def mode_function2(lst, multiplicity = False):
maxFreq = max(map(lst.count, lst))
modes = [i for i in lst if lst.count(i) == maxFreq]
return modes if multiplicity else set(modes)