Python一行流 : 像专家一样写代码

0
(0)

Python一行流
: 像专家一样写代码

作者:[美]ChristianMayer

出版社:电子工业出版社

副标题:像专家一样写代码

原作名:PythonOne-Liners

译者:苏丹

出版年:2021-10

页数:248

定价:89.00元

装帧:平装

ISBN:9787121419683

内容简介
······

本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高效的Python单行代码;阅读任意一行Python代码时,如何系统性地对其进行拆解和分析。全书分为6个章节,以单行代码切入计算机科学的各个领域,包括Python语言基础、编程技巧、基于NumPy的科学计算、机器学习的主要算法模型、正则表达式进阶、计算机科学中若干经典算法的单行实现等。

作者简介
······

作者 | Christian Mayer

计算机科学博士,知名Python网站创始人和维护者。该网站非常活跃,订阅人数已经超过2万且仍在持续增长。他的网站不仅发展迅速,也帮助数以万计的学习者提升了编码技能和优化了在线业务。他同时也是Coffee Break Python系列自出版图书的作者。

译者 | 苏丹

网上id一般为su27,2009年毕业于北京师范大学数学系,主要从事后端编程,也曾从事前端与客户端开发工作。目前为豆瓣用户产品后端负责人,日常跟Python打交道较多。2016年翻译出版《深入理解Flask》一书。

目录
······

导语 ………………………………………………………………………………………………………… 1

Python 一行流的例子 ……………………………………………………………………………………… 2

关于可读性的说明 …………………………………………………………………………………………. 3

这本书是给谁看的? ……………………………………………………………………………………… 4

你会学到什么? …………………………………………………………………………………………….. 5

线上资源 ……………………………………………………………………………………………………….. 6

1 Python 温故知新 …………………………………………………………………………………… 7

基本数据结构 ………………………………………………………………………………………………… 8

数值数据类型和结构 ………………………………………………………………………………. 8

布尔值 ……………………………………………………………………………………………………. 8

字符串 ………………………………………………………………………………………………….. 11

关键字 None …………………………………………………………………………………………. 12

容器数据类型 ………………………………………………………………………………………………. 13

列表 ……………………………………………………………………………………………………… 13

堆栈 ……………………………………………………………………………………………………… 16

集合 ……………………………………………………………………………………………………… 17

字典 ……………………………………………………………………………………………………… 19

成员 ……………………………………………………………………………………………………… 20

XVIII Python 一行流

列表和字典解析 ……………………………………………………………………………………. 20

控制流 …………………………………………………………………………………………………………. 21

if、else 和 elif ……………………………………………………………………………………….. 21

循环 ……………………………………………………………………………………………………… 22

函数 …………………………………………………………………………………………………………….. 24

lambda 函数 ………………………………………………………………………………………………….. 24

总结 …………………………………………………………………………………………………………….. 25

2 Python 技巧 ……………………………………………………………………………………….. 27

使用列表解析找出最高收入者 ………………………………………………………………………. 28

基础背景 ………………………………………………………………………………………………. 28

代码 ……………………………………………………………………………………………………… 30

它是如何工作的 ……………………………………………………………………………………. 31

使用列表解析找出高信息价值的单词 ……………………………………………………………. 31

基础背景 ………………………………………………………………………………………………. 31

代码 ……………………………………………………………………………………………………… 32

它是怎么工作的 ……………………………………………………………………………………. 32

读取文件 ……………………………………………………………………………………………………… 33

基础背景 ………………………………………………………………………………………………. 33

代码 ……………………………………………………………………………………………………… 34

它是怎么工作的 ……………………………………………………………………………………. 34

使用 lambda 和 map 函数 ………………………………………………………………………………. 35

基础背景 ………………………………………………………………………………………………. 35

代码 ……………………………………………………………………………………………………… 36

它是如何工作的 ……………………………………………………………………………………. 37

使用切片查找匹配子串及所处环境 ……………………………………………………………….. 38

基础背景 ………………………………………………………………………………………………. 38

代码 ……………………………………………………………………………………………………… 40

它是如何工作的 ……………………………………………………………………………………. 41

列表解析和切片 …………………………………………………………………………………………… 41

基础背景 ………………………………………………………………………………………………. 42

代码 ……………………………………………………………………………………………………… 42

它是如何工作的 ……………………………………………………………………………………. 43

使用切片赋值来修复损坏的列表 …………………………………………………………………… 43

基础背景 ………………………………………………………………………………………………. 43

代码 ……………………………………………………………………………………………………… 44

它是如何工作的 ……………………………………………………………………………………. 45

使用列表连接分析心脏健康数据 …………………………………………………………………… 46

基础背景 ………………………………………………………………………………………………. 46

代码 ……………………………………………………………………………………………………… 48

它是如何工作的 ……………………………………………………………………………………. 48

使用生成器表达式查出未达最低工资标准的公司 ………………………………………….. 48

基础背景 ………………………………………………………………………………………………. 49

代码 ……………………………………………………………………………………………………… 49

它是如何工作的 ……………………………………………………………………………………. 50

使用 zip()函数格式化数据库 …………………………………………………………………………. 51

基础背景 ………………………………………………………………………………………………. 51

代码 ……………………………………………………………………………………………………… 52

它是如何工作的 ……………………………………………………………………………………. 53

总结 …………………………………………………………………………………………………………….. 54

3 数据科学 ……………………………………………………………………………………………. 55

基础二维数组计算 ……………………………………………………………………………………….. 56

基础背景 ………………………………………………………………………………………………. 56

代码 ……………………………………………………………………………………………………… 59

它是如何工作的 ……………………………………………………………………………………. 60

使用 NumPy 数组:切片、广播和数组类型 ………………………………………………….. 61

基础背景 ………………………………………………………………………………………………. 61

广播 ……………………………………………………………………………………………………… 64

代码 ……………………………………………………………………………………………………… 67

它是如何工作的 ……………………………………………………………………………………. 68

使用条件数组查询、过滤和广播检测异常值 …………………………………………………. 70

基础背景 ………………………………………………………………………………………………. 70

代码 ……………………………………………………………………………………………………… 71

它是如何工作的 ……………………………………………………………………………………. 72

使用布尔索引过滤二维数组 ………………………………………………………………………….. 74

基础背景 ………………………………………………………………………………………………. 74

代码 ……………………………………………………………………………………………………… 75

它是如何工作的 ……………………………………………………………………………………. 76

使用广播、切片赋值和重塑清洗固定步长的数组元素 …………………………………… 77

基础背景 ………………………………………………………………………………………………. 77

代码 ……………………………………………………………………………………………………… 80

它是如何工作的 ……………………………………………………………………………………. 81

NumPy 中何时使用 sort()函数,何时使用 argsort()函数 …………………………………. 82

基础背景 ………………………………………………………………………………………………. 82

代码 ……………………………………………………………………………………………………… 85

它是如何工作的 ……………………………………………………………………………………. 85

如何使用 lambda 函数和布尔索引来过滤数组 ……………………………………………….. 87

基础背景 ………………………………………………………………………………………………. 87

代码 ……………………………………………………………………………………………………… 87

它是如何工作的 ……………………………………………………………………………………. 88

如何使用统计、数学和逻辑来创建高级数组过滤器 ………………………………………. 89

基础背景 ………………………………………………………………………………………………. 89

代码 ……………………………………………………………………………………………………… 93

它是如何工作的 ……………………………………………………………………………………. 94

简单的关联分析:买了 X 的人也买了 Y …………………………………………………….. 94

基础背景 ………………………………………………………………………………………………. 94

代码 ……………………………………………………………………………………………………… 95

它是如何工作的 ……………………………………………………………………………………. 96

使用中间关联分析寻找最佳捆绑策略 ……………………………………………………………. 98

基础背景 ………………………………………………………………………………………………. 98

代码 ……………………………………………………………………………………………………… 98

它是怎么工作的 ……………………………………………………………………………………. 99

总结 …………………………………………………………………………………………………………… 100

4 机器学习 ………………………………………………………………………………………….. 102

监督式机器学习的基础知识 ………………………………………………………………………… 102

训练阶段 …………………………………………………………………………………………….. 103

推理阶段 …………………………………………………………………………………………….. 104

线性回归 ……………………………………………………………………………………………………. 104

基础背景 …………………………………………………………………………………………….. 104

代码 ……………………………………………………………………………………………………. 107

它是如何工作的 ………………………………………………………………………………….. 108

逻辑回归的一行流 ……………………………………………………………………………………… 110

基础背景 …………………………………………………………………………………………….. 110

Sigmoid 函数 ……………………………………………………………………………………… 111

代码 ……………………………………………………………………………………………………. 114

它是如何工作的 ………………………………………………………………………………….. 114

K-Means 聚类算法一行流 …………………………………………………………………………… 116

基础背景 …………………………………………………………………………………………….. 116

代码 ……………………………………………………………………………………………………. 119

它是如何工作的 ………………………………………………………………………………….. 120

K-近邻算法一行流 ……………………………………………………………………………………… 122

基础背景 …………………………………………………………………………………………….. 122

代码 ……………………………………………………………………………………………………. 124

它是如何工作的 ………………………………………………………………………………….. 125

神经网络分析一行流 ………………………………………………………………………………….. 127

XXII Python 一行流

基础背景 …………………………………………………………………………………………….. 127

代码 ……………………………………………………………………………………………………. 132

它是如何工作的 ………………………………………………………………………………….. 133

决策树学习一行流 ……………………………………………………………………………………… 136

基础背景 …………………………………………………………………………………………….. 136

代码 ……………………………………………………………………………………………………. 137

它是如何工作的 ………………………………………………………………………………….. 138

一行流计算方差最小的数据行 …………………………………………………………………….. 139

基础背景 …………………………………………………………………………………………….. 139

代码 ……………………………………………………………………………………………………. 140

它是如何工作的 ………………………………………………………………………………….. 141

基本统计一行流 …………………………………………………………………………………………. 142

基础背景 …………………………………………………………………………………………….. 143

代码 ……………………………………………………………………………………………………. 144

它是如何工作的 ………………………………………………………………………………….. 145

支持向量机分类一行流……………………………………………………………………………….. 146

基础背景 …………………………………………………………………………………………….. 147

代码 ……………………………………………………………………………………………………. 148

它是如何工作的 ………………………………………………………………………………….. 149

随机森林分类一行流 ………………………………………………………………………………….. 150

基础背景 …………………………………………………………………………………………….. 150

代码 ……………………………………………………………………………………………………. 152

它是如何工作的 ………………………………………………………………………………….. 152

总结 …………………………………………………………………………………………………………… 154

5 正则表达式 ………………………………………………………………………………………. 155

在字符串中找到基本文本模式 …………………………………………………………………….. 155

基础背景 …………………………………………………………………………………………….. 156

代码 ……………………………………………………………………………………………………. 159

它是如何工作的 ………………………………………………………………………………….. 159

用正则表达式编写你的第一个网络爬虫 ………………………………………………………. 160

基础背景 …………………………………………………………………………………………….. 160

代码 ……………………………………………………………………………………………………. 162

它是如何工作的 ………………………………………………………………………………….. 162

分析 HTML 文档中的超链接 ………………………………………………………………………. 163

基础背景 …………………………………………………………………………………………….. 163

代码 ……………………………………………………………………………………………………. 165

它是如何工作的 ………………………………………………………………………………….. 166

从字符串中提取美元金额 ……………………………………………………………………………. 167

基础背景 …………………………………………………………………………………………….. 168

代码 ……………………………………………………………………………………………………. 169

它是如何工作的 ………………………………………………………………………………….. 169

找出不安全的 HTTP URL ……………………………………………………………………………. 170

基础背景 …………………………………………………………………………………………….. 170

代码 ……………………………………………………………………………………………………. 171

它是如何工作的 ………………………………………………………………………………….. 171

验证用户输入的时间格式(第一部分) ………………………………………………………. 172

基础背景 …………………………………………………………………………………………….. 172

代码 ……………………………………………………………………………………………………. 173

它是如何工作的 ………………………………………………………………………………….. 174

验证用户输入的时间格式(第二部分) ………………………………………………………. 174

基础背景 …………………………………………………………………………………………….. 175

代码 ……………………………………………………………………………………………………. 175

它是如何工作的 ………………………………………………………………………………….. 176

字符串中的重复检测 ………………………………………………………………………………….. 176

基础背景 …………………………………………………………………………………………….. 176

代码 ……………………………………………………………………………………………………. 177

它是如何工作的 ………………………………………………………………………………….. 178

检测重复单词 …………………………………………………………………………………………….. 179

基础背景 …………………………………………………………………………………………….. 179

代码 ……………………………………………………………………………………………………. 179

它是如何工作的 ………………………………………………………………………………….. 180

用正则模式在多行字符串中进行修改 ………………………………………………………….. 181

基础背景 …………………………………………………………………………………………….. 181

代码 ……………………………………………………………………………………………………. 181

它是如何工作的 ………………………………………………………………………………….. 182

总结 …………………………………………………………………………………………………………… 183

6 算法 ………………………………………………………………………………………………… 184

用 lambda 函数及排序找出异形词 ……………………………………………………………….. 185

基础背景 …………………………………………………………………………………………….. 185

代码 ……………………………………………………………………………………………………. 186

它是如何工作的 ………………………………………………………………………………….. 187

用 lambda 函数和负索引切片找出回文 ………………………………………………………… 188

基础背景 …………………………………………………………………………………………….. 188

代码 ……………………………………………………………………………………………………. 189

它是如何工作的 ………………………………………………………………………………….. 189

用递归阶乘函数计算排列数 ………………………………………………………………………… 189

基础背景 …………………………………………………………………………………………….. 190

代码 ……………………………………………………………………………………………………. 192

它是如何工作的 ………………………………………………………………………………….. 192

找到 Levenshtein 距离 …………………………………………………………………………………. 194

基础背景 …………………………………………………………………………………………….. 194

代码 ……………………………………………………………………………………………………. 195

它是如何工作的 ………………………………………………………………………………….. 195

通过函数式编程计算幂集 ……………………………………………………………………………. 198

基础背景 …………………………………………………………………………………………….. 198

代码 ……………………………………………………………………………………………………. 200

它是如何工作的 ………………………………………………………………………………….. 200

用高级索引和列表解析来实现恺撒密码的加密 ……………………………………………. 201

基础背景 …………………………………………………………………………………………….. 201

代码 ……………………………………………………………………………………………………. 202

它是如何工作的 ………………………………………………………………………………….. 203

用 Eratosthenes 筛法找出素数 ……………………………………………………………………… 204

基础背景 …………………………………………………………………………………………….. 204

代码 ……………………………………………………………………………………………………. 205

它是如何工作的 ………………………………………………………………………………….. 206

用 reduce()函数计算 Fibonacci 数列 ……………………………………………………………… 211

基础背景 …………………………………………………………………………………………….. 211

代码 ……………………………………………………………………………………………………. 211

它是如何工作的 ………………………………………………………………………………….. 212

一种递归的二分查找算法 ……………………………………………………………………………. 214

基础背景 …………………………………………………………………………………………….. 214

代码 ……………………………………………………………………………………………………. 216

它是如何工作的 ………………………………………………………………………………….. 216

递归快速排序算法 ……………………………………………………………………………………… 217

基础背景 …………………………………………………………………………………………….. 218

代码 ……………………………………………………………………………………………………. 219

它是如何工作的 ………………………………………………………………………………….. 219

总结 …………………………………………………………………………………………………………… 220

后记 …………………………………………………………………………………………………….. 221

评论 ······

重要的不是one-liners, 而是pythonic

one-liner 可读性很差,不建议

倒也不必

在计算机编程领域,太多hello world教程和手册类的内容根本不应该出版成书籍,从这个意义上来说本书的价值已经成立了。但是通篇翻完也并没有说服我为什么要用一行流,比如冒着可读性变差的风险把代码塞进一行里,除了智商上的满足感之外能获得什么,更好的性能吗【问号】。不管怎么说,可以不用但不能不懂,学习一下还是很有必要。

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册