《Python Cookbook 3rd》笔记汇总

柔光的暖阳◎ 2022-12-19 11:55 447阅读 0赞

文章目录

  • 一、数据结构
  • 二、字符串和文本
  • 三、数字、日期和时间
  • 四、迭代器与生成器
  • 五、文件与IO

一、数据结构


























































































标题 关键词
1.1:拆分序列后赋值给多个变量 可迭代对象、拆分赋值
1.2:拆分任意长可迭代对象后赋值给多个变量 可迭代对象、拆分赋值、星号表达式
1.3:保留最近N个元素 collections.deque、限容双端队列、yield
1.4:查找最大或最小的N个元素 heapq、堆
1.5:实现一个优先级队列 heapq、堆、元组比较
1.6:字典中的键映射多个值 字典、collections.defaultdict
1.7:字典排序 collections. OrderedDict、双向链表
1.8:字典运算 字典、最小值、最大值、排序、键集、值集、键值对换、lambda
1.9:查找两字典的相同点 set、集合交与差的运算、字典推导式
1.10:删除序列相同元素并保持顺序 set、yield、list、lambda
1.11:命名切片 魔数、切片、slice()、indices()
1.12:序列中出现次数最多的元素 collections.Counter、字典
1.13:通过某个关键字排序一个字典列表 排序、sorted()、operator.itemgetter、lambda
1.14:排序不支持原生比较的对象 排序、sorted()、operator.attrgetter、lambda
1.15:通过某个字段将记录分组 分组、operator.itemgetter、litertools.groupby()
1.16:过滤序列元素 列表推导式、生成器表达式、itertools.compress()
1.17:从字典中提取子集 字典推导式
1.18:映射名称到序列元素 下标另名为、collections.namedtuple()
1.19:转换并同时计算数据 聚集函数、sum()、max()、min()、列表推导式、生成器表达式
1.20:合并多个字典或映射 逻辑上的字典、collections.ChainMap

二、字符串和文本


























































































标题 关键词
2.1:使用多个界定符分割字符串 re、split()、正则式、非捕获分组、生成器表达式、[:]、[::]
2.2:字符串开头或结尾匹配 str.startswith()、str.endswith()、列表推导式
2.3:用Shell通配符匹配字符串 fnmatch.fnmatch()、fnmatch.fnmatchcase()、列表推导式
2.4:字符串匹配和搜索 re、正则式、compile()、match()、findall()、group()
2.5: 字符串搜索和替换 re、正则式、compile()、sub()、str.repalce()
2.6:字符串忽略大小写的搜索替换 re、正则式、re.IGNORECASE
2.7:最短匹配模式 re、正则式、非贪婪模式
2.8:多行匹配模式 re、正则式、非捕获组、re.DOTALL
2.9:将Unicode文本标准化 unicodedata.normalize()
2.10:在正则式中使用 Unicode re、正则式、Unicode
2.11:删除字符串中不需要的字符 str.strip()、str.lstrip()、str.rstrip()
2.12:审查清理文本字符串 str.translate()、str.replace()
2.13:字符串对齐 str.ljust() 、str.rjust()、str.center()、format()、%
2.14:合并拼接字符串 +、str.join()、format()、yield
2.15:字符串中插入变量 str.format()、str.format_map()
2.16:以指定列宽格式化字符串 textwrap.fill()
2.17:在字符串中处理html和xml html.escape()、html.parser、xml.sax.saxutils
2.18:字符串令牌解析 re、正则式、编译原理
2.19:实现一个简单的递归下降分析器 re、正则式、编译原理
2.20:字节字符串上的字符串操作 字节字符串

三、数字、日期和时间










































































标题 关键词
3.1:数字的四舍五入 round()、format()
3.2:执行精确的浮点数运算 Decimal
3.3:数字的格式化输出 format()
3.4:二、八、十六进制整数 bin()、oct()、hex()、format()
3.5:字节到大整数的打包与解包 int.from_bytes()、int.to_bytes()
3.6:复数的数学运算 complex()、cmath、numpy
3.7:无穷大与 NaN float()、man.isinf()、math.isnan()
3.8:分数运算 Fraction
3.9:大型数组运算 numpy
3.10:矩阵与线性代数运算 numpy
3.11:随机选择 random
3.12:基本的日期与时间转换 datetime、timedelta
3.13:计算最后一个周五的日期 datetime、timedelta
3.14:计算当前月份的日期范围 datetime、timedelta、date、calendar
3.15:字符串转换为日期 datetime
3.16:结合时区的日期操作 datetime、pytz

四、迭代器与生成器










































































标题 关键词
4.1:手动遍历迭代器 next()、iter()
4.2:代理迭代 iter()
4.3:使用生成器创建新的迭代模式 frange()、range()、next()
4.4:实现迭代器协议 yield、yield from
4.5:反向迭代 reversed()
4.6:带有外部状态的生成器函数 iter()
4.7:迭代器切片 itertools.islice()
4.8:跳过可迭代对象的开始部分 itertools.dropwhile()、islice()
4.9:排列组合的迭代 itertools.permutations()排列、itertools.combinations()组合
4.10:序列上索引值迭代 enumerate()枚举
4.11:同时迭代多个序列 zip()
4.12:不同集合上元素的迭代 itertools.chain()
4.13:创建数据处理管道 yield、yield from、itertools.chain()
4.14:展开嵌套的序列 isinstance()、yield from
4.15:顺序迭代合并后的排序迭代对象 heapq.merge()
4.16:迭代器代替 while 无限循环 iter()、lambda

五、文件与IO






























































































标题 关键词
5.1:读写文本数据 open(), with…as…, encoding=
5.2:打印输出至文件中 print(’’, file=f)
5.3:使用其他分隔符或行终止符打印 print(’’, ‘’, ‘’, sep=’’, end=’’), str.join((’’,))
5.4:读写字节数据 open(), rb, wb
5.5:文件不存在才能写入 open(), xt, xb, os.path.exists()
5.6:字符串的 I/O 操作 io.StringIO(), io.BytesIO()
5.7:读写压缩文件 gzip, bz
5.8:固定大小记录的文件迭代 iter(), functools.partial()
5.9:读取二进制数据到可变缓冲区中 bytearray(), file.readinto
5.10:内存映射的二进制文件 mmap
5.11:文件路径名的操作 os.path
5.12:测试文件是否存在 os.path
5.13:读写压缩文件 os.listdir(), glob
5.14:忽略文件名编码 sys.getfilesystemencoding()
5.15:打印不合法的文件名 UnicodeEncodeError
5.16:增加或改变已打开文件的编码 io.TextIOWrapper()
5.17:将字节写入文本文件 sys.stdout.buffer.write(b’’)
5.18:将文件描述符包装成文件对象 os.open(), open()
5.19:创建临时文件和文件夹 tempfile.TemporaryFile, tempfile.NamedTemporaryFile, tempfile.TemporaryDirectory()
5.20:与串行端口的数据通信 serial.Serial()
5.21:序列化 Python 对象 pickle.dump(), pickle.load()

待续

发表评论

表情:
评论列表 (有 0 条评论,447人围观)

还没有评论,来说两句吧...

相关阅读