清波
第一次迭代就返回 ,所以这个函数返回的就是 第一个元素了。Python中有 现成的模块做这个,下面代码:import collections
data = [1,2,5,10,-20,5,5]
most_common_elem = collections.Counter(data).most_common()
## 下面懒得写了。。。 从返回结果中 挑选 元素吧。。。解释:可以查看 Counter 的help 信息。如果自己定义这个函数的话:data = [1,2,5,10,-20,5,5]
def most_common(data):
if not data:
return data
counter_sort = sorted(map(lambda x:(data.count(x),x),set(data)))
most_num = counter_sort[-1][0]
return list(map(lambda x:x[-1],filter(lambda x:x[0] == most_num,counter_sort)))
## 用推导式再试试。。。
def most_common(data):
if not data:
return data
counter_sort = sorted([(data.count(x),x) for x in set(data)])
most_num = counter_sort[-1][0]
return [x[-1] for x in counter_sort if x[0] == most_num]没有做 太多的 参数检查,下午有点困。就这样吧。。。