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

 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)

 

转载于:https://www.cnblogs.com/tengtenga/p/9886519.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值