结果不是5,不是哪里代码写错,谢谢帮忙纠错
2 回答
已采纳
清波
TA贡献165条经验 获得超90个赞
第一次迭代就返回 ,所以这个函数返回的就是 第一个元素了。
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]
没有做 太多的 参数检查,下午有点困。就这样吧。。。
添加回答
举报
0/150
提交
取消