python中对数字降序_python---按重复数字的次数 降序排列 返回数组

假设有个列表  a=[1,1,1,2,2,4,4,5,5,5,5,5] (非空且为正整数)

那么根据要求 最终输出的形式为  [5, 1, 2, 4]  (按重复次数 降序排列输出)

方法一:通过列表实现

# -*- coding: UTF-8 -*-

#取出数字出现的次数放进L中,并降序排序

L=[]

a=[1,1,1,2,2,4,4,5,5,5,5,5]

for i in a:

L.append(a.count(i))

L = list(set(L))

L.sort(reverse=True)

#取出次数对应a列表里面的值放进新列表num1中

num1=[]

for m in L:

for n in a:

if m == a.count(n):

num1.append(n)

#去重

num2=[]

for i in num1:

if i not in num2:

num2.append(i)

print num2

方法二:通过字典实现

#将数字和对应重复次数作为key,value放入字典

List=[1,1,1,2,2,5,4,4,5,5,5,5,5]

a = {}

for i in List:

if List.count(i)>=1:

a[i] = List.count(i)

#对字典value(重复次数)降序排序,以列表形式返回

a = sorted(a.items(), key

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值