PAT乙级刷题笔记和规则整理(python实现)(持续更新中~)

本文记录了PAT乙级刷题过程中的编程心得,包括排序、集合操作、数字格式化及常用输入输出方式。例如,使用sort()进行排序,利用set操作获取集合的交集、并集和差集,以及如何高效输出排序后的数字列表。还介绍了字典映射在输出转换中的应用,以及format函数的格式控制。此外,总结了常见输入输出格式,如list(map(int,input().split()))。
摘要由CSDN通过智能技术生成

本文用于记录PAT乙级刷题过程中的一些笔记,包括但不限于:卡了好久终于找到的bug,绕了远路写了一大段其实完全可以用一个函数代替,以及看了别人的代码后醍醐灌顶的知识点,方便后续回顾避坑,也希望能对你有所帮助~
同时整个题库刷下来,有一些题意完全可以当作“八股文”,整理在规则里,相当于一个“八股文”模板,之后再看到题目有类似要求,直接套用模板代码即可。

笔记:

  1. 遇到需要排序或者比大小的地方,直接调用python的sort()方法:
student = [('Joe', 'Math990112', 89), ('Mike', 'CS991301', 100), ('Mary', 'EE990830', 95)]
student.sort(key=lambda x:x[2],reverse=True)   #按照第三维的数字排序,默认升序
  1. 取两个集合的交集,并集,差集:
s = set([3,9,10,20,40])      #创建一个数值集合 
t = set([3,9,1,7,29,81])      #创建一个数值集合 

a = t | s          # t 和 s的并集 ,等价于t.union(s)  输出:{1, 3, 7, 40, 9, 10, 81, 20, 29}
b = t & s          # t 和 s的交集 ,等价于t.intersection(s)  输出:{9, 3}
c = t - s          # 求差集(项在t中,但不在s中)  ,等价于t.difference(s)  输出:{81, 1, 29, 7}
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中),等价于t.symmetric_difference(s)  输出:{1, 7, 40, 10, 81, 20, 29}
  1. 当要求输出的为一组数字且需要排序时,不必用for循环来一一输出列表元素,一个*sorted方法更妙:
print(*sorted(list(set1-set2),reverse=True),sep=' ')    #注意只有集合才能做交集并集差集运算
  1. 题目要求用另一种形式来输出时,直接用字典来一一对应:
pinyin_dict = {'0':'ling','1':'yi','2':'er','3':'san','4':'si','5':'wu','6':'liu','7':'qi','8':'ba','9':'jiu'}
  1. format函数中{0:2d},{1:3d},{2:sd}的意思:

0, 表示第一个参数,1, 表示第二个参数, 之后顺次递加;
{0:2d}表示第一个参数x的格式。0 代表x,:2d 表示两个宽度的10进制数显示
比如:4通过’{:0>2d}‘.format(4)处理之后变成04
再比如:4通过’{:1>3d}'.format(4)处理之后变成114

其他格式化:

如:print(‘{:.2f}’.format(3.1415926))
输出:3.14

规则:

  • 输入方式:list(map(int, input().split()))或者set(map(int,input().split()))是这套题库中经常出现的输入方式:第 1 行给出一个正整数K (<100),第 2 行给出 K 个互不相同的待验证的正整数 n (1<n≤100)的值,数字间用空格隔开。

输入样例:
6
3 5 6 7 8 11

样例代码:
n = int(input())
l = set(map(int,input().split()))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值