Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0a31ef0

Browse files
committed
更新解析和生成
1 parent ca0d241 commit 0a31ef0

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

‎Learning Python/4、函数和生成器/5. 解析和生成.ipynb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"cell_type": "markdown",
55
"metadata": {},
66
"source": [
7-
"# 列表解析和函数式编程工具 \n",
7+
"# 1. 列表解析和函数式编程工具 \n",
88
"列表解析能够更加通用,可以在一个列表解析中编写任意数量的嵌套的 for 循环,并且每一个都有可选的关联的 if 测试:\n",
99
"```\n",
1010
"[expression for target1 in iterable1 [if condition1]\n",
@@ -102,7 +102,7 @@
102102
"cell_type": "markdown",
103103
"metadata": {},
104104
"source": [
105-
"## 列表解析和矩阵 \n",
105+
"## 1.1 列表解析和矩阵 \n",
106106
"使用 Python 编写矩阵的一个基本方法就是使用嵌套的列表结构:"
107107
]
108108
},
@@ -347,14 +347,14 @@
347347
"collapsed": true
348348
},
349349
"source": [
350-
"# 生成器函数和表达式 \n",
350+
"# 2. 生成器函数和表达式 \n",
351351
"Python 提供了工具在需要的时候才产生结果,而不是立即产生结果。有两种语言结构尽可能地延迟结果创建。 \n",
352352
"- 生成器函数:编写为常规的 def 语句,但是使用 yield 语句一次返回一个结果,在每个结果之间挂起和继续它们的状态。\n",
353353
"- 生成器表达式:类似于列表解析,但是它们返回按需产生结果的一个对象,而不是构建一个结果列表。\n",
354354
"\n",
355355
"由于二者都不会一次性构建一个列表,它们节省了内存空间,而且允许计算时间分散到各个结果请求。 \n",
356356
"\n",
357-
"## 生成器函数:yield VS return \n",
357+
"## 2.1 生成器函数:yield VS return \n",
358358
"生成器函数,编写可以送回一个值并随后从其退出的地方继续的函数,因为它们随着时间产生值的一个序列。 \n",
359359
"\n",
360360
"一般来说,生成器函数和常规函数一样,然而,当创建时,生成器函数自动实现迭代协议,以便可以出现在迭代背景中。 \n",
@@ -729,7 +729,7 @@
729729
"collapsed": true
730730
},
731731
"source": [
732-
"## 生成器表达式:迭代器遇到列表解析 \n",
732+
"## 2.2 生成器表达式:迭代器遇到列表解析 \n",
733733
"生成器表达式就像一般的列表解析一样,但是它们是括在圆括号中而不是方括号中。"
734734
]
735735
},
@@ -1384,7 +1384,7 @@
13841384
"cell_type": "markdown",
13851385
"metadata": {},
13861386
"source": [
1387-
"## 生成器是单迭代器对象 \n",
1387+
"## 2.3 生成器是单迭代器对象 \n",
13881388
"生成器函数和生成器表达式自身都是迭代器,并由此只支持一次活跃迭代。"
13891389
]
13901390
},
@@ -1600,7 +1600,7 @@
16001600
"cell_type": "markdown",
16011601
"metadata": {},
16021602
"source": [
1603-
"## 示例\n",
1603+
"## 2.4 示例\n",
16041604
"示例只在序列中有效。 \n",
16051605
"\n",
16061606
"**打乱序列** \n",
@@ -1754,7 +1754,7 @@
17541754
"cell_type": "markdown",
17551755
"metadata": {},
17561756
"source": [
1757-
"## 示例:用迭代工具模拟 map "
1757+
"## 2.5 示例:用迭代工具模拟 map "
17581758
]
17591759
},
17601760
{
@@ -1927,7 +1927,7 @@
19271927
"cell_type": "markdown",
19281928
"metadata": {},
19291929
"source": [
1930-
"# 解析语法总结 \n",
1930+
"# 3. 解析语法总结 \n",
19311931
"在 Python 3.X 中还有两种可用的解析表达式形式:集合解析和字典解析。\n",
19321932
"- 对于集合,新的常量形式{1, 3, 2}等同于 set([1, 3, 2]),并且新的集合解析语法 `{f(x) for x in S if P(x)}` 就像是生成器表达式 `set(f(x) for x in S if P(x))`,其中 f(x) 是一个任意的表达式。\n",
19331933
"- 对于字典,新的字典解析语法 `{key: val for (key, val) in zip(keys, vals)}` 像 `dict(zip(keys, vals))` 形式一样工作,并且 `{x: f(x) for x in items}` 像生成器表达式 `dict((x, f(x)) for x in items)` 一样工作。\n",
@@ -2023,7 +2023,7 @@
20232023
"cell_type": "markdown",
20242024
"metadata": {},
20252025
"source": [
2026-
"## 作用域和解析变量 \n",
2026+
"## 3.1 作用域和解析变量 \n",
20272027
"Python 3.X 中本地化四种形式的循环变量——生成器、集合、字典和列表解析中的临时循环变量名对于表达式是本地的。它们不和外部的名称冲突,也在外部不可用。和 for 循环迭代语句工作方式不同。"
20282028
]
20292029
},
@@ -2147,7 +2147,7 @@
21472147
"collapsed": true
21482148
},
21492149
"source": [
2150-
"## 针对集合和字典的扩展的解析语法 \n",
2150+
"## 3.2 针对集合和字典的扩展的解析语法 \n",
21512151
"集合和字典解析都支持嵌套相关的 if 子句从结果中过滤掉元素。"
21522152
]
21532153
},
@@ -2382,7 +2382,7 @@
23822382
"name": "python",
23832383
"nbconvert_exporter": "python",
23842384
"pygments_lexer": "ipython3",
2385-
"version": "3.6.5"
2385+
"version": "3.6.8"
23862386
},
23872387
"toc": {
23882388
"nav_menu": {},

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /