猿问

求数组中出现频率最多的数 出错,请各位帮忙查看,非常感谢

结果不是5,不是哪里代码写错,谢谢帮忙纠错

111111111111111Q
浏览 1995回答 2
2回答

清波

第一次迭代就返回 ,所以这个函数返回的就是 第一个元素了。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]没有做 太多的 参数检查,下午有点困。就这样吧。。。

weibo_请输入一个名字____0

 按照你的思路 , 只要把return 和for循环对其即可。
随时随地看视频慕课网APP

相关分类

Python
我要回答