《Python Cookbook 3rd》笔记汇总
文章目录
- 一、数据结构
- 二、字符串和文本
- 三、数字、日期和时间
- 四、迭代器与生成器
- 五、文件与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() |
待续
《Python Cookbook 3rd》笔记汇总相关推荐
- JNA实战笔记汇总一 简单认识JNA|成功调用JNA
一.简介 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可.首先看下 ...
- JNA实战笔记汇总(一)—— JNA简介及demo环境创建
目录 1.简介 2.原理 3.配置环境,创建demo 3.1 搞清楚.dll/.so文件适用环境 3.2 创建一个普通的maven项目 3.2.1 将.dll/.so文件放在resources根路径下 ...
- Java8实战笔记--组合异步编程
一.Future 初衷是对将来某个时刻会发生的结果进行建模. 想象成这样的场景:你拿了一袋子衣 服到你中意的干洗店去洗.干洗店的员工会给你张发票,告诉你什么时候你的衣服会洗好(这就 是一个Future ...
- c++ jna 数据类型_JNA实战笔记汇总一 简单认识JNA|成功调用JNA
一.简介 先说JNI(Java Native Interface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进行交互,只要遵守调用约定即可.首先看下 ...
- JNA实战笔记汇总(二)——JNA和C / C ++的数据类型映射(dll函数回调、结构体、指针)
目录 JNA技术难点 1.函数回调 2.结构体 3.指针 JNA技术难点 有过跨平台.跨语言开发的程序员都知道,跨平台.预研调用的难点,就是不同语言之间数据类型不一致造成的问题.绝大部分跨平台调用的失 ...
- 《Java8实战》笔记汇总
<Java8实战>笔记(01):为什么要关心Java8 <Java8实战>笔记(02):通过行为参数传递代码 <Java8实战>笔记(03):Lambda表达式 & ...
- 《Java8实战》读书笔记06:Parallel Stream 并行流
<Java8实战>读书笔记06:Parallel Stream 并行流 第7章 并行数据处理与性能 7.1 并行流 7.1.1 将顺序流转换为并行流 7.1.2 测量流性能 7.1.3 正 ...
- 《Java8实战》-第六章读书笔记(用流收集数据-01)
用流收集数据 我们在前一章中学到,流可以用类似于数据库的操作帮助你处理集合.你可以把Java 8的流看作花哨又懒惰的数据集迭代器.它们支持两种类型的操作:中间操作(如 filter 或 map )和终 ...
- 《Java8实战》读书笔记10:组合式异步编程 CompletableFuture
<Java8实战>读书笔记10:组合式异步编程 CompletableFuture 第11章 CompletableFuture:组合式异步编程 11.1 Future 接口 (只是个引子 ...
- Java8实战学习笔记(三)——函数式数据处理
一.引入流 (一).引言 1.流是什么 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).可以看成遍历数据集的高级迭代器. 流可以透明地并行 ...
最新文章
- Xubunbtu远程桌面的tab键
- 服务器更改文件夹权限,云服务器如何修改文件权限
- 如何在Java中检查字符串是否为数字
- 电动力学每日一题 2021/10/13 用Fourier变换法计算静止电荷产生的电场
- spark和HSQL的连接join方式
- linux学习笔记(10)fdisk命令
- hi3531交叉编译环境arm-hisiv100nptl-linux搭建过程
- 由Object.prototype.toString.call( )引发关于toString( )方法的思考
- SpringBoot使用外置的Servlet容器
- FreeRTOS(2)---学习FreeRTOS前的准备工作
- 计算机语言列表,计算机语言java中得List
- thinkphp5学习笔记
- LIO-SAM探秘第三章之代码解析(一) --- utility.h + imageProjection.cpp
- win7原版iso镜像下载 windows7官方原版全系列(正式版、专业版、企业版、家庭版)下载
- matlab画图函数汇总(二)
- (十四)A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Seri
- 新医改背景下,民营医院如何通过绩效变革支持高质量发展?
- 高并发系统负载均衡与实时监控的实用方案
- 微信iOS版7.0版发布:界面全新改版
- 【马红“名师+”研修共同体】“课” 展风采,“研”无止境----教学交流活动(二)
热门文章
- Microsoft Windows CE .NET 中的中断体系结构
- 交通与计算机杂志社,交通信息与安全
- 锐炬显卡可以linux吗,Intel Broadwell桌面CPU性能测试:Iris Pro 6200核显无敌了
- mysql的每隔1分钟定时_mysql定时任务
- arcgis选出点规定范围的面
- 【转】DICOM医学图像读取涉及到的医学坐标体系
- 【转】Asp.net的生命周期之应用程序生命周期
- .NET 实现并行的几种方式(三)
- php 父类中获取子类的名称,php – 在父类中获取子类的名称(静态上下文)
- Spark的Transformations算子(理解+实例)