码迷,mamicode.com
首页 > 编程语言 > 详细

给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)

时间:2018-11-01 00:49:49      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:ted   count()   函数   lam   注意   [1]   print   ==   put   

 1 """
 2 #给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字
 3 #返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)
 4 解题思路:
 5 1.设定一个空字典,去存储列表中的值和值出现的次数
 6 2.使用L.count()方法可以统计出L中值出现的次数
 7 3.使用sorted方法可以进行排序,sorted(iterable,key,reverse)
 8 注意key是函数
 9 4.列表中的元祖取值 d[i][j] i是哪一个元祖,j是元祖中的第几个值
10 
11 """
12 def sort(N):
13     d = {}
14     for i in L:
15         d[i] = L.count(i)
16     #print(d)
17     dd = sorted(d.items(),key= lambda item : item[1],reverse= True)
18     print(dd)
19     for i in range(0,N):
20         print("出现次数排第%d的数字是%d,共出现了%d次" % (i+1,dd[i][0],dd[i][1]))
21 if __name__ == __main__:
22     L = [1, 2, 3, 2, 3, 1, 2, 1, 2, 3, 2, 1, 4, 3, 2]
23     l = len(set(L))
24     N = int(input("请输入一个不大于%d的数:" % l))
25     sort(N)

 

给定一个只包含正整数的非空数组,返回该数组中重复次数最多的前N个数字 ,返回的结果按重复次数从多到少降序排列(N不存在取值非法的情况)

标签:ted   count()   函数   lam   注意   [1]   print   ==   put   

原文地址:https://www.cnblogs.com/tengtenga/p/9886519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!