CCF 201503-2 数字排序 python 满分

56 篇文章 4 订阅

题目叙述

问题描述:略

输入格式:略

输出格式:略

样例

样例输入
12
5 2 3 3 1 3 4 2 5 2 3 5
样例输出
3 4
2 3
5 3
1 1
4 1

满分证明

在这里插入图片描述
在这里插入图片描述

解题思路

  1. 先进行排序;
  2. 利用字典setdefault;
  3. 对字典值进行降序排序;
  4. 结果,中间用空格分开。

版本二
并无太多优化,“条条大路通罗马”吧!
举一反三
判断n是否字典(dit)key中存在,使用

n in dit.keys() #或者直接使用 n in dit

判断n是否字典(dit)value中存在,使用

n in dit.values()

满分代码一

n = int(input())
ll = list(map(int, input().split()))
ll.sort()
dic = {}
for i in range(n):
    dic.setdefault(ll[i], ll.count(ll[i]))
al = sorted(dic.items(), key=lambda x: x[1], reverse=True)
for i in range(len(al)):
    print(al[i][0], " ", al[i][1])

满分代码二

n = int(input())
ss = list(map(int, input().split()))
dit = {}
for s in ss:
    if s in dit: #判断s是否为字典中key值
        dit[s] = dit[s] + 1
    else:
        dit.setdefault(s, 1)
dd = sorted(dit.items(), key=lambda kv: kv[0])
dt = sorted(dd, key=lambda kv: kv[1], reverse=True)
for k, v in dt:
    print(k, v)

需者自取传送门(∩ᄑ_ᄑ)⊃━☆【CCF 2013-2021】本博主整理历年至少前两题 python 满分代码目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值