ccf 数字排序

1.题目描述:

 

题目描述

 2.代码

#思路list记录,zip,排序 100
n=int(input())
data=list(map(int,input().split()))
num,cnt=[],[]

for it in data:
    if it not in num:
        num.append(it)
        cnt.append(1)
    else:
        for i in range(len(num)):
            if it==num[i]:
                cnt[i]+=1
dic=list(zip(num,cnt))
dic.sort(key= lambda x:x[0])
dic.sort(key= lambda x:x[1],reverse=True)
for i in range(len(num)):
    print("%d %d"%(dic[i][0],dic[i][1]))

 


3.使用库函数

\*~.~*/  库函数小课堂
c = collections.Counter(参数) 
#参数可以是list、str、tuple、None等等
#作用:统计参数每个元素出现的次数
#返回:一个字典(元素作为key存储,元素出现次数作为value存储)

c.update('adc') # 在原来基础上更新计数(直接修改c)
# 输出: Counter({'a': 4, 'c': 1, 'd': 2, 'g': 1, 'h': 1, 'l': 2})

c.most_common()
# 输出:[('a', 4), ('l', 2), ('d', 1), ('g', 1), ('b', 1), ('c', 1), ('h', 1)]
#返回一个TopN列表。如果n没有被指定,则返回所有元素。当多个元素计数值相同时,排列是无确定顺序的
# 相当于字典排序:sorted(c.items(), key=lambda asd:asd[1], reverse=True)

常用函数:
sum(c.values())  # 所有计数的总数
c.clear()  # 重置Counter对象,注意不是删除
list(c)  # 将c中的键转为列表
set(c)  # 将c中的键转为set
dict(c)  # 将c中的键值对转为字典
c.items()  # 转为(elem, cnt)格式的列表
Counter(dict(list_of_pairs))  # 从(elem, cnt)格式的列表转换为Counter类对象
c.most_common()[:-n:-1]  # 取出计数最少的n-1个元素
c += Counter()  # 移除0和负值
(2)代码

import collections
n=int(input())
data=list(map(int,input().split()))
dic= collections.Counter(data) 
l=list(dic.items())
l.sort(key=lambda asd:asd[0])
l.sort(key=lambda asd:asd[1], reverse=True)
for it in l:
    print("%d %d"%(int(it[0]),int(it[1])))

 

4.参考:

https://www.cnblogs.com/lianyingteng/p/7727598.html

python标准库


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值