V1£W1V1¬W1V2£W2V2¬W2f£g9!f¬g

semi local的例子有局部环的乘积和

如果放弃命题中 的有限性条件,则 (1) 有反例 ;(2) 有反例 ,这里 是第n个素数。

,注意到 可逆 ,从而 有逆元

(i): 只需注意到 幂零,从而 被分解为可逆+幂零。现考虑 :假设 的逆为 ,则有 等等,在第二个式子两侧同乘 ,同乘 ,如此递归下去直至 ,而 可逆故 幂零。 为可逆元加幂零元,从而也是可逆元,因此递归可知 皆幂零。
(ii):类似的手段,证明 幂零于是 幂零。
(iii):取 最小的使 ,考虑到如果 使 ,则 ,从而 (否则 次数下降),于是 ,结合
(iv): :若 本原,只需考虑其系数环量组合为 的式子中分别关于 主元整理即可知 本原。 :模仿Gauss引理证明即可。若 分别本原,也就是 ,假若 并非本原,即其系数生成理想是真理想,则存在某个极大理想 包含它,从而对 ,在 ,矛盾。

没区别。

只需证如果 可逆对任意 成立,则 幂零。设 ,则 可逆,从而由 均幂零。

(i):显然。(ii): 幂零则 幂零,从而 幂零,如此递归即可证明 皆幂零。(iii):(i)的立即推论。(iv):由(iii), ,从而 ,于是 ,从而 是域,即知 极大。(v):考虑理想

只需证Jacobson根都幂零即可。设 可逆对任意 成立,如果 非幂零,则 中包含幂等元 ,而 可逆意味着存在 使得 ,从而同乘 ,则 ,矛盾。

对素理想 ,商环 是整环,而任何元素 的投影 的根,如果 非零则 从而可逆。因此 为域。

对一族下降素理想 ,考虑 。对 ,每个 都至少包含 一者,从而至少有一个,假设是 被包含于无穷多 中,因而 。现在对全部素理想关于被包含关系应用Zorn引理即可。

:显然。 :考虑到包含 素理想和 的素理想一一对应,而 是其一切素理想的交。

(i)(ii):依题意 为素理想。对 ,若 不可逆则存在极大理想包含 ,和素理想唯一性矛盾。(ii)(iii):显然。(iii)(i):显然。

(i):考虑 。(ii):商环是整环, 意味着 。(iii):将布尔环类比为 ,从而加法成为按位异或而乘法为与,容易注意到 应是 生成的理想。现在回到题目便是验证 ,而事实上 ,于是即得证结论。

和1.6没区别,考虑如果有非 的幂等元 ,那么有极大理想 包含 ,从而 是Jacobson,进而 可逆,矛盾。

只需证对有限情形, 中真理想。事实上归纳然后商掉 即可。

中极大元素的商环必是整环。

(iv):依 中论述 为包含 的一切素理想之交。 (v)、(vi):对理想 ,已知 。此外 有开覆盖即因此存在 的有限子集 使 ,其中 。从而(vii):显然有限多 的并拟紧。反过来 为若干 之并,从而取出有限覆盖即可。

(i)、(ii)、(iii):(iv):等于说

不可约等于说 ,则 ,即 ,则 ,而这就是素性的定义。

(i):稠密开集依然稠密。(ii):不可约空间的包含升链之并不可约,因此可以应用Zorn引理。(iii):如果不闭那么取闭包会更大。 不可约意味着存在包含它的极大不可约子空间,故不可约子空间的并为 。Hausdorff空间中不可约集合无非单点。(iv):先证明 不可约当且仅当 素。事实上 不可约即意味着 之一包含于 至少有一个等于 。于是至此 为极大不可约元即意味着 为极小素理想。

(i): 当且仅当 。(ii): 当且仅当 。(iii):考虑到于是 。(iv): 为连续双射直接源于对应定理。现在考虑到 ,因此 连续,故 是同胚。(v):(iii)。(iv):显然。(vii):

为只有第 个分量为 其余为 的元,对素理想 之一在 中。因此 中的素理想 具有形式,于是 ,典范同构是显然的。现证明三个条件等的价性:
(i)(iii):假设 ,则 。现在存在 使 幂零。考虑环直积的结构,我们希望构造某个 ,如果存在这样的元素那么 两侧同乘 ,类似地 ,于是 。现在回到 的构造,令 ,则 是可逆元,因此 ,现在选取 使 即可。
(iii)(ii):注意到在 中, ,而对幂等元 可以得到另一个环的单位元。回到问题,就是注意到对幂等元 容易验证同样是幂等元, ,从而
(ii)(i):上面证过了。

注:此题中(i)推(iii)也可以通过如下引理得到

中的幂等元可以被提升为 中幂等元,这里

假设存在 ,也就是 ,那么由中国剩余定理从而直接得到一个幂等元。

(i):。(ii):
(iii):假设 既开又闭。则 ,考虑在上一题(i)推(iii)过程中选出的 ,实际上过程给出了 其中 为可逆元,从而一切包含 的素理想包含 从而包含 ,包含 的素理想包含 ,由于Boole环中 ,故 ,同理
另证:依 拟紧,于是 闭集从而拟紧,又因为 是开集,所以它是有限多 的并,于是只需考虑(ii)。
(iv):只需证Hausdorff,而这是因为Boole环中素理想皆极大()。

除加法结合律外皆显然,而事实上利用分配律易证 ,从而
反过来的验证和说明这两个对应关系互逆的证明同样循规蹈矩。

对Boole格 ,取其对应Boole环 ,则 为紧Hausdorff空间,且 意味着 。又因为 中理想皆radical,故 单,且 中已经证明了它满。

形式的零点定理等价于所谓弱零点定理,也就是 中极大理想 皆有 形式,事实上考虑 ,取 从而

反过来如果弱零点定理成立,那么对真理想 ,考虑 中多项式 ,则这些多项式无公共零点,从而存在 使得代入 便知

假若存在坐标环间的 -代数同态 ,取 ,现在只需证明对应的多项式映射 的映射,从而自然诱导出的 就是 。事实上 拉回到 ,也就是对任意 都有 于是

我们也可以这么考虑:任何 一一对应于 中包含 的极大理想,也就是 中极大理想 -代数同态 诱导出 满同态( 中就有一份 ,从而自然是满射),于是对应某个极大理想 ,其中 。也就是说 把在 点处的取值拉回到在 点处取值,从而 打到

基本性质

直观上来讲,双线性和对应着“乘法”,例如 双线性映射,数乘是 双线性映射,如果 是向量场 的模, 是微分 -形式 的模,则他们的乘积 到函数环的模。

如果模 定义了取值于模 的乘法,而 是线性映射,则 定义了取值于 的乘法(也就是 双线性映射)。这样的使如下图表交换的 称为从乘法 的态射,由此模 的乘法定义了一个范畴

LM£NL0'BB0


的张量积则是“最基本的”乘法。

上模 张量积 的始对象。具体来说,它是取值于模 的双线性映射 ,使得任意双线性映射 可以被唯一分解为某个线性映射 复合张量积,也就是

对任意模 ,存在同构意义下唯一的张量积

唯一性由始对象的特质给出,也就是假设有两个张量积 ,则存在 的唯一态射 ,和 的唯一态射 。类似的, 态射唯一,所以只能是 ,而 正是 态射,于是 ,同样的可得 ,所以 是同构。

存在性考虑 作为集合生成的自由 -模,商去生成的子模,则得到满足张量积泛性质的模。

注:上面证明存在性处的具体构造除证明张量积存在以外毫无用处。

对一般非交换环情形,比如说对右 -模 和左 -模 ,则应有约束 ,但在这种情况下只能得到一个Abel群结构,不大能得到一个合适的 -模结构,所以非交换环情形一般处理双模,比如说 -双模时可以使 成为 -左模,于是 都是双模时就能得到双模。

(交换约束)

映射双线性,从而给出 态射,类似地可以构造 态射,由 证明中同样的技术可知其为同构。

(i) (ii)

  1. 只需验证 满足 的泛性质,而 出发的双线性映射相当于一对 出发的双线性映射之和,从而用 泛性质得到一对线性映射加起来即可。

  2. 同样的道理,注意到 出发的双线性映射和 出发线性映射相同。

对域 上有限维线性空间 ,如果 一组基, 一组基,则 一组基,且 以字典序排列考虑矩阵则得到熟知的Kronecker积

考虑

注: 作为线性空间是 维,而 维。

考虑有限生成Abel群的张量积。有限生成Abel群可以写成一些 的直和,从而我们只需要处理三类张量积: ,前两者是显然的,而对于第三个张量积,我们将证明它是

由于 的生成元,所以 生成。显然 ,类似地 ,从而它至多有 个元素(考虑 )。

而反过来,乘法给出双线性映射 ,分解出 的满射,从而 恰有 个元素。其实直接证明这个映射单也不难,只需考虑到这里面 ,如果它被打到 ,因为 被打到 ,所以

更一般的,用同样的手段我们可以证明

考虑乘法定义的映射 ,它显然良定义且双线性,从而分解出 。一方面显然这是满射,一方面 中元素皆有 形式,因而被打到 当且仅当 ,从而 ,因而这是单射。

注:这个命题也可依靠张量积的右正合性证明,具体来说考虑张量积上 ,而 自然同构于 (只需验证 满足 泛性质即可)。

-模线性映射 ,存在唯一的线性映射 使得

考虑双线性映射 即可。

(结合约束) -模 -双模 的张量积 具有自然的 模结构,假设 -模,则有 -双模的同构

-模结构直观上应该由 给出,而事实上考虑双线性映射 ,唯一分解出 -线性映射 ,显然 ,于是 的确是 -模,类似地道理知 -模。

取某个 ,则 诱导出 -线性映射 ,而 关于 -线性(后者只需考虑到 的数乘 在泛性质图表里复合后一致即可),从而给出映射 ,这便是我们所求的同构。

Reading: Section 2.2
Exercises: 2.4

张量积与正合列

如果 正合,那么在 是域时 正合(这里是指 ),然而一般来说并没有这种性质。张量积在这里失去正合性的问题在交换代数中有十分重要的地位,同调代数就以处理此问题为核心。

考虑 tensor上 ,其中 是乘 映射,则得到 ,第二个 ,保持正合,第一个是 ,因而不正合(所以只能把最左边的 删掉。

与tensor上 类似的还有考虑函子 作用于正合列,而在中, ,因而前两项处都正合,然而 并非满射(所以只能把最右边的 删掉)

对反过来的 函子,类似地中, ,而 是乘 映射,并非满射。

左正合, 右正合

比如说对 ,如果 被推出到 ,那么 ,由于 单, 视作 的子模而 则成为 线性映射,即 是某个推出的像。

同样对 ,如果 ,如果 被拉回到 ,也就是 上消失,而 ,于是 的确成为 的映射。

注:事实上 正合当且仅当 正合 ,类似地 处的正合性也是充要的,见Atiyah Prop. 2.9

右正合

从正合列可得到正合列 ,然而考虑双线性中固定某个分量,就得到自然同构于是我们事实得到了正合列相当于说 中元素相当于 中在 上消失的元素,从而 事实上就是

注:上面证明中的自然同构告诉我们 的左伴随,它和余极限交换,于是自然这个命题正确。

这种右正合性可以用于计算张量积,具体来说比如说对于 ,如果能找到它的有限展示那么可以考虑同时tensor上

张量积和余极限

与之类似的有用性质是张量积保持direct limit

一个 -模的direct system是某个direct set (任何两元素集有上界的偏序集)到 - 的函子(也就是这个偏序集形状的交换图),也就是一族模 配备映射 ),满足 (i) (ii) 。定义它上的一个锥是模 配备一系列映射 ,且使如下图表交换(这里

NMjMiMk


两个锥 间的同态是使两个锥的图表带上这个映射之后的大图表交换的线性映射,容易验证这样我们定义了一个范畴。它的direct limit 就是其上锥的始对象,具体泛性质如以下交换图

lim¡!MiNMjMiMk9!


它可以被构造为诸 的直和商去关系 ,这里 的映射,这些验证可以参见Atiyah第二章习题14-19。direct limit就是模范畴上的余极限。

而关于张量积, 就相当于 ,从而张量积和余极限交换。

的余极限,其中第一个 是乘 ,第二个是乘 ,第三个是乘 ,……直观来讲,第 可以看作 。某种意义上这可能就是direct limit有时被称为归纳极限的原因。现在考虑计算 ,则这相当于这里面每个箭头都是同构,从而它的余极限就是 。不过这里有需要小心的问题,比如说类似地计算 ,相当于要考虑一个direct system的余极限,但这里第偶数个 都是 ,所以事实上这个余极限就是

Reading: Section 2.2
Exercise: 2.13
Calculate Hom(M,N) and the tensor products of M, N over the ring k[x] for all pairs M,N of modules each of which is isomorphic to k(x), k[x], or k[x]/(fn) where f is an irreducible polynomial.

平坦模

平坦模的概念由Serre在20世纪50年代引入,此后被Grothendieck证明在代数几何中具有极其基本的地位。直观来讲, 平坦意味着 具有极好的性质,某种意义上讲 可以看作一族局部环上的模 ,而平坦则是在说它们具有很好的性质,譬如说不会突然跳变这样的(?)。我们将证明局部化环 保持正合。

平坦模如果 保持正合

不是平坦模,考虑 -模上张量积时 是平坦模

用构造局部化环完全相同的手段,我们可以定义局部化模 ,这里面的元素皆有 形式,而且如果 当且仅当 对某个 。自然地,对 ,可以定义出对应的映射 ,把 打到

模的局部化保持正合(-模正合列到 -模)

考虑正合列 ,局部化之后得到如果 中的像是 ,那么 被打到某个 ,其中 被某个 零化,从而 打到 ,从而 ,除掉 便知

我们把 定义为 ,这里 -模 可以看作 处的stalk, 看作“函数环的层”上“模”的“层”。就像 对应 ,对模的情况 就是 ,这里实际上定义了所谓拟凝聚层。

,作为推论, 是平坦 -模

我们可以定义映射 ,不难验证它们良定义而且互逆,因而为同构。

一般来说商不保持平坦,例如 ,于是一般来讲一般未必正合。

对一些比较好的情况我们可以探测到一些平坦模的结构。例如 是平坦 -模,如果 是整环,考虑 和正合列tensor上 知道乘 是单射,也就是 是无挠模。反过来,对一切PID上的模(以及一些更广泛的情况), 如果无挠则平坦。

当且仅当对一切极大理想

意味着 ,这对一切极大理想成立,于是

正合当且仅当 总正合

因为局部化正合,所以只需证明 即可。事实上由于 平坦于是

平坦当且仅当一切 是平坦 -模

想说明 平坦,也就是保持正合,只需说明总正合,而 ,另外两项类似,于是由 平坦即得证结论。

注:如果把 看作平坦 -模并不影响证明,事实上平坦 -模可以推平坦 模,因为 是平坦 -模。

Reading: Section 2.2
Exercises: 2.20

平坦扩张

环同态 使 成为 -代数,对一个 -模 ,可以得到一个 -模 ,它自然诱导出映射 自然成为一个 -模,并且有自然(显然它是自然变换)的 -模同态 。一般来讲它不是同构,例如考虑 ,这里

不过如果 是平坦 -模而 有有限展示(有正合列 )时,可以证明它是同构。对诺特环来说有限生成则有限展示(关系的子模有限生成),于是 是诺特环时只需要 有限生成。证明这一结论需要:

(5引理)对交换图

M0M1M2M3M4N0N1N2N3N4


其中横行皆正合,有
(i) 若 满, 单,则
(ii) 满, 单,则

  1. 考虑以如下路线追图
    打到 ,一方面来说 中的像是 ,另一方面 满,所以存在 打到 打到 ,而 单,所以 中的像是 ,从而存在 打到 打到 中有相同的像,于是存在 下的像是 ,由 满,取 的像是 ,由交换性 的像是 ,于是 的像是

  2. 的追图则更简单。假设 打到 ,那么 打到 ,由 单知 中的像被打到 ,于是由正合性存在 打到 中的像是 被打到 于是存在某个原像 ,由于 满所以有原像 打到 ,但 单,所以 被打到 ,而 被打到 ,于是

假设 是平坦 -代数, 是有限展示 -模,-模,则有 是同构

。对正合列应用函子 得到正合列从而由平坦性有正合列类似地先应用 则得到再应用 得到而对有限生成的自由模,显然 ,由于 都保持有限直和,所以 同理。现在由5引理, 是同构(考虑正合列 和……)。

下面给出一个 不有限展示时 失效的例子。取 ,则(由于 考虑到 形如 ,诸 的次数小于某个固定的上界(也就是 )。而 形如 ,诸 任取(也就是 ),显然这两者不能同构(事实上作为 -模一个可数维一个不可数维)。

Reading: Section 2.2
Exercises: 2.12, A3.11 (page 641)

如题

b.考虑 共轭作用于 ;d.考虑到 交换,

则首先 平凡, 为交换群。进而 的自同构可以诱导出 的自同构,从而 中只能有不超过二阶元。由此 成为一个 -线性空间,从而 平凡当且仅当

注意到 包含 的子群,从而指数是 的因子,而 ,于是可知 也就是

另证:令 ,则考虑 的作用 ,通过 易证其良定义,并且若 进而 ,所以 上作用自由,从而 上作用的每个轨道都有 个元素,因而

a. 考虑 ,从而若存在 ,那么 ,矛盾。 b. 考虑 以左平移作用于 可知 ,但 均不含 可以写为三个二阶群的并。

考虑 上的作用注意到故这个作用良定义且给出单同态 是正规子群。
时,若 并非正规子群, 有两个左陪集 ,因为 非正规所以 不能总等于 ,进而 上的左乘作用传递,而 的稳定子必相同,从而包含于一切 意味着这个稳定子指数2,即得命题证明。

a. 可配对。此外注意到若 ,假设其非零,那么 给出一个维数大于1的 -线性空间。另一方面考虑 作用于 ,一切轨道形如 ,于是 中元素乘积等于 。b. 显然。 c. 注意到于是即得 为奇数意味着

a. 最大的 不能小于 ,也就是最小的 不超过 ,从而只有有限多种选择,于是对 归纳,考虑 对应的方程立即可知此时方程也有有限多组解。

意味着 属于 共轭作用下 的稳定子,而稳定子大小乘轨道长度等于

考虑对 的像 应用Goursat引理,则对 ,有同构 给出,从而可取 ,其中 为自然投影。

a. 对应定理的简单推论。b. 假若不然, 中有非平凡元 ,则 时取 ,否则 有限阶时取 即得单群。 c. 令 , 则 子群且可以应用Goursat引理,也就是对 ,有 同构与之对应,但 于是 ,由此即得

(i)和(iii)显然等价,有限情形(iv),(v)和(iii)等价性无非式(1.3)。(ii)推(iii)显然,而反过来假若 上作用不传递,则存在 落在不同轨道里。

,则可取使 ;若 落在同一轨道,即存在双射 使 ,则自然 。Bell数的递推公式写成则无非是在分类讨论 所在等价类的元素个数。

考虑到轨道长度有限,从而稳定子指数皆有限,而稳定子的上升包含意味着指数的下降链,从而存在极大的稳定子 。由于 极大,所以 中元素 稳定子包含 意味着 ,从而每个 所在轨道都同构于 。考虑到 ,可知 中和 同轨道元素的数量为 ,因此 中在同一轨道的元素数量只依赖 的性质而与 本身无关, 同构,则剔除上面涉及到的诸轨道后, 依然满足题设,从而归纳可证。

a. 取 中非单位元,则存在其幂次为素数阶,而自同构保持阶不变,因而由 上作用传递性可知 中元素阶均为 。b. 此时 中一切元素满足 ,从而 ,因此 为交换群,于是成为 -线性空间。 c.

意味着 必居其一,分别对应单射和平凡情形。若 上作用双传递,则取 ,则11题(ii)告诉我们 上作用传递,从而对严格包含 的子群 ,取 ,则 给出 上作用传递,而 的每个 陪集恰对应某个 ,于是可知 。由此知 极大,即 上作用本原。

a. 长度有限,于是自然想到考虑 Jordan-Holder滤链末端的单群,它是极小的正规子群。对两个不同极小正规子群 ,因为 正规故 ,那么 中元素被唯一表为 乘积,对 给出 上投影 ,类似地可知 上投影 ,由此即得 ,从而 是直积。现在考虑对上述单群 作用的轨道中各子群乘积给出特征子群 ,从而 。又 长度有限意味着轨道长度有限,否则无穷乘积长度并非有限(或者按serre提示言,按 轨道中有限多子群乘积子群也都长度不大于 长度,所以可以取包含意义下极大的乘积,那么因极大性 轨道中一切子群都应被包含)。从而立即可知 。现在因为 乘积,所以 的正规子群就是 的正规子群,于是 为单群。 b. 如果 不是特征子群则

流程控制

For

for循环形如

1
2
for VAR in ITERABLE:
BLOCK

如若ITERABLE中元素为tuple,也可以有如
1
2
for VAR1,VAR2 in ITERABLE:
BLOCK

enumerate(ITERABLE)将一个可遍历的数据对象组合为一个索引序列(类型为enumerate),其元素为形如(index, item)的tuple。
range(start, stop[, step])生成可迭代的序列(类型为range),start默认为0,step默认为1。
Python有List comprehension(列表推导式),形如[expression for item in iterable if condition == True]其中if条件默认为全部True。此外可以有[expression1 if condition1 else expression2 for item in iterable]的写法。
break可以结束最近的一个for或者while循环。
continue则是直接进入下一轮循环。
pass为空操作。

错误处理

raise [exceptionName [(reason)]]会抛出异常,名称为exceptionName而描述为reason,形如exceptionName: reasonraise会抓取最近的报错信息(如在上一层try中被抛出的,try中异常被处理结束之后便不会再抛出),如果没有默认RuntimeError。
tryexcept可以不让程序报错的情况下尝试执行一段代码并就相关异常抛出进行处理,具体来说形如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
try:
# ...some error prone code...
code block 1
except:
# ...do something with the error...
code block 2
except Exception_Name_1:
# ...do something with the error...
code block 3
else:
# ...to do when there is no error...
code block 4
finally:
#...some clean up code...
code block 5

如果出现异常(exception),那么将进入except:处理,默认任何异常都会进入except,而except Exception_Name_1只处理错误名称为Exception_Name_1的情形。finally:无论如何都会被执行。

文件操作

基本I/O

电脑向python程序输入数据可以通过电脑键盘(keyboard)和输入文件(input data file)来输入,输出数据可以通过the monitor screen和输出文件来输出。

variable_name = input([prompt])prompt用于提示用户,从屏幕上输入的内容总是str类型。

print(..., end = str)可以使print输出...后再输出str,默认str为换行。

文件可以被大体分为binary files (二进制文件)和text files (文本文件),文本文件存储的是ASCII码。二进制文件一般包含headers以标识其文件内容,如果header无效则supporting programs可能不会打开这个二进制文件或者报告其损坏。二进制文件相对来说读取和存储速度更快,更少限制性而且更具安全性,但更容易损坏。

基于unix的操作系统中文件路径分隔符(delimiters)用/,对大小写敏感。而Windows则是\,对大小写不敏感。带有...的文件路径为相对路径,如..\langur.txt定位当前目录的父目录中名为langur.txt的文件,而..\langur.txt则定位当前目录,..\..\langur.txt定位父目录的父目录。

OS模块

Python中os模块处理与操作系统的接口,需要import os
os.getcwd()将返回当前工作目录的路径string。
os. listdir(dir)返回一个list,其中元素是dir中每个文件名称的string。dir默认是当前工作目录(string类型)。
os.remove(file)删除名为file的文件(file为string类型)。
os.rename(source, destination)将source重命名为destination。
os.mkdir(path)创建一个新目录path。
os.path.join(path, *paths)把一串路径串联成一个大路径。
os.path.exists(path)os.path.isfile(path)os.path.isdir(path)返回bool值判断是否存在如path所述的路径、目录和文件。
os.path.getmtime(path)返回path最新一次被修改的时间。
os.path.split(path)返回一对string,(head, tail),其中tail为字符串直至最末分隔符的后缀,其余在该分隔符前部分为head。

读入/写入文件

open ( file, mode, .. )会返回一个文件句柄,file为文件目录,可以绝对可以相对,mode是字符串以描述这个文件会如何被处理,具体来说的mode如下:

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。文件不存在时会报I/O错误。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

.read(n)将从文件中读入n个字节的内容,默认全部读入(不推荐)。.readline(n)将从文件读取整行包括换行符\n,如果指定了一个非负数的参数,则返回指定大小的字节数,包括\n字符。如果已经到文件末尾(碰到结束符EOF)则会返回空字符串。.readlines()返回一个list,每个元素都是文件中的一行。如果碰到EOF则会返回空字符串。for i in f,其中f为读入文件句柄,可以按行迭代文件内容。

读入的结尾需要关闭文件,即.close()

with statement可以自动关闭文件,它形如:

1
2
3
with open(file, mode) as file_handler:
Statement_1
Statement_2

with open(file, mode, encoding='')将确定读入时选择的编码。如encoding='ascii'encoding='utf-8'分别对应ascii码和utf-8编码的情况。python3默认为utf-8。

file.write(byte)可以向file_handle对于文件中写入string。write不会自动补上换行符。与read时类似的也有file_handle.writelines(list)。(同样不会默认加\n

常见文本文件格式

.txt / .tsv文件用Tab制表符\t分隔,CSV(Comma Separated Values)文件用,分隔。

import csv 可以调用CSV模块。
csv.reader(file, delimiter='')返回一个reader object,可以按行迭代csvfile文件中读取内容(每行都返回为string),csvfile可以是文件或文件对象,也可以是类似文件的对象(如StringIO对象)。delimiter为分隔符,默认为逗号,也可以改为如'等。类似地,csv.writer返回将数据写入 CSV 文件的写入器对象

在csv文件中写入内容可以考虑

1
2
3
csvwriter = csv.writer(csvfile, delimiter='')
csvwriter.writerow(row)
csvwriter.writerows(rows)

delimiter默认为逗号。row是一个列表,rows则是每行对应列表之列表。writerows会自动换行。

csv.DictReader(f, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)会返回一个类似reader的reader object,但将每行中的信息映射到一个字典,该字典的keys由可选的fieldnames参数给出。fieldnames参数是一个序列。如果省略字段名,则文件f第一行中的值将用作字段名,并将从结果中省略。如果提供了字段名,将使用它们,并且第一行将包含在结果中。无论字段名是如何确定的,字典都会保留它们的原始顺序。例如csv.DictReader(f, fieldnames=['a', 'b', 'c'])则对应的keys是a, b, c,而默认则是csv文件第一行对应内容。

如果一行的字段多于字段名,则将剩余的数据放入列表中,并使用由restkey指定的字段名(默认为None)存储。如果非空白行的字段少于字段名,则用restval的值(默认为None)填充缺失的值。

类似地还有csv.DictWriter(f, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)。它将创建一个对象,其操作方式与常规写入器类似,但将字典映射到输出行。fieldnames参数是一个键序列,用于标识传递给writerow方法的字典中的values写入文件f的顺序。它的用法例如

1
2
3
4
5
6
7
8
9
10
import csv

with open('names.csv', 'w', newline='') as csvfile:
fieldnames = ['first_name', 'last_name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

writer.writeheader()
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

Pickle模块

在程序生命周期中创建的所有变量都临时存储在内存中,并在程序终止时消失。而pickle模块是Python专用的持久化模块,也就是让数据持久化保存。 “Pickling” 是将 Python 对象层次结构转换为字节流的过程,而 “unpickling” 是逆操作。

pickle.dump(pythonObject, pickleDestination, pickle_protocol=None, *, fix_imports=True)将python对象pythonObject转换成写入pickleDestination的字节流。类似地可以用pickle.load(f)。用pickle.dump和pickle.load读写文件时要用wbrb模式。

pickle.dumps(pythonObject)返回pythonObject转换而来的二进制串。pickle.loads(bytes_object)有类似功用。

Booleans, Integers, Floats, Strings, Tuples, Lists, Sets, Dictionaries均能被pickle。

Borcherds交换代数网课的笔记

关于环与模

群环(Groupring)往往是非交换环。

微分算子环中有在这里 某种意义上比 本身更简单, 分别为 。也因为这样的原因类似这样的环和交换环“相差不是很远”,很多交换环上的技术在这种环上也可以应用。

burnside多项式

对一般的不含幺环,我们某种意义上有办法把它变成一个含幺环,也就是“硬塞”一个新的单位元 ,记号上可以感性地写作 ,其中环中元素皆有 形式,乘法的定义是自然的(有点像半直积)。

将这种构造称作 unitization,记为 ,此处的 是Abel群的直和而非 中的直和。

注:unitization具有函子性,并且是 遗忘函子的左伴随。事实上自然可知。

具有compact support的 关于加法和卷积形成一个不含幺环。

对局部紧拓扑空间 ,称其上函数vanishes on infinity如果对任意 ,存在紧集 使得 以外函数绝对值小于 ,则全体这样函数组成的环 有单位元当且仅当 紧致。这给出了一种不含幺环与局部紧拓扑空间,含幺环与紧空间的对应,unitization则对应单点紧化。事实上单点紧化也是带点拓扑空间范畴 的遗忘函子之左伴随。

的单点紧化是 ,而 ,这里的同构依 给出。然而对 也即两个 ,有 (因为 )而 则不然(此时是相当于三个 [0,1) 将其开的那端同接上同一个点之后的 )。

模因为对商封闭而比理想更灵活。

Abel群=-模

线性空间和 - 模有一一对应,线性变换和 - 模有一一对应。

理想 作为 的子模,商环 作为 -模,且两者之间有一一对应

-代数 等于说环同态

群代数(又名群环)-模等于说 -线性表示。

代数不变量

作用于 ,则 函数空间的作用可以被自然地定义为或者等价地说

这有点类似在乘积 上的作用可以被自然地定义为 这里 是函数空间而 。而如果比如 ,则 ,这也就是取 的意义所在之一。
另一种观点是考虑群 作为单点范畴,那么 在集合上的作用即为 函子,上述 -映射的定义无非自然变换

¢¢¢¢fgggf


也即 中的态射。

正交群作用于 时一个自然不变的多项式是长度平方 被定义为(作用于 上)保持 的群。

作用于 从而作用于 ,不变量是全体对称多项式,构成一个 上有限生成代数(由全体基本对称多项式生成),多项式环 。事实上这种不变量的代数是多项式,也就是没有约束地自由生成当 是反射群(reflection group)时会发生。

作用于 ,全体不变量(多项式)由 生成,其中 ,且有唯一的非平凡关系其中 为多项式(因为 即定义为 保持 不变的子群, 为对称多项式)。这是一阶合冲(syzygy)的例子。

作用于 ,具体来说是乘上三次单位根 ,则全体不变多项式由 生成,记它们分别为 ,则有关系 应为零且应为零,这在某种意义上是“低阶”和“高阶”的生成元间关系。

,这种关系可以用模的正合列( 按如 这样的规则自然成为一个 -模)表达,其中, 的自由生成元 打到上式中对应的 中多项式(常数), 则把 (对应 )打到诸 的线性组合。诸 对应关系称为一阶合冲(syzygy), 对应关系被称为二阶合冲。直观来讲二阶的合冲就像轭把耕牛绑在一起一样把一阶合冲绑在一起,或许这是其得名原因。这种概念有着一般的定义:

一个 -模的复形指一系列 和模同态 ,满足 结合皆为零。满足 且正合的自由 -模组成复形称为 自由解消 的像称为 合冲。如果 而对任意 都有 非零,则称 长度 。上面例子里

考虑 上全体二元齐次多项式形如 作用(乘在 )。在作用下不变的 的多项式有诸如所谓 catalecticant等。Paul Gordon证明了这些不变量有限生成。

有限生成有多种不同的含义:

  1. 作为模或者理想有限生成
  2. 作为 上代数有限生成
  3. 作为域有限生成

属于2而非1, 或者 (后者含幺)属于1而非2, 属于3而非2或1。

-模 给出一个长度无限的自由解消。

诺特环

Reading Section (Eisenbud'c Commutative Algebra): 1.4
Exercises: 1.1, 1.3, 1.4, 1.5

诺特环 是所有理想均有限生成的环。

如下条件等价:
1. 是诺特环
2. 任何 理想组成的集合(在包含关系下)有极大元素
3. 理想包含升链稳定

考虑一系列环: 上解析函数环, 上解析函数环, 上光滑函数环, 处的解析函数环, 处的光滑函数环(商去函数芽的等价) ,这些环每一个都包含于下一个(除最后一步只能是映射到形式幂级数环外) 。它们中第一三五七个为诺特环,二四六非诺特环。具体来说,对24考虑取定义域内无极限点无限集,则在其上除有限点外均为 函数给出非有限生成理想,对3我们可以证明在闭区间上解析函数只有有限多零点,从而任何解析函数可以被写作多项式乘可逆元(无零点幂级数),对5注意到任何 处解析函数都可以被写作 乘某个可逆元,对6考虑 其中 ),而且,其中 处解析函数环和 因为非零真理想都是 成为所谓离散赋值环的例子。在这些例子里,我们发现诺特的那些中的零点都表现得很好,都有有限的大小而且可以被控制,而

对任意整环 是诺特环,而其子环 未必是

诺特环 的商环 是诺特环,从而诺特环上有限生成代数作为多项式环的商环是诺特环

注意到 中理想和 中包含 理想有自然的对应,从而 中任何理想组成的集合有最大元这一性质也被赋予给

多元多项式环中理想的生成元数量并不能被未定元数控制。例如

考虑 中,一切次数不小于 的多项式组成的理想 ,也就是 ,那 是一个四维的线性空间,它的一组生成元至少包含一组基,于是这个理想不可能被小于四个元生成。

(Puiseaux series)考虑对取并,则得到一个非诺特环。

Hilbert基定理

Reading: Section 1,4
Exercises: 15.15 a

(Hilbert)诺特环 的多项式环是诺特环

中理想 ,考虑理想 定义为 的多项式首项系数生成的理想,则 ,从而存在 使 ,诸 有限生成。令 为首项系数生成 次多项式有限集,则 给出 的生成元集。

诺特环 的形式幂级数环是诺特环

中理想 ,考虑理想 定义为一切 的幂级数第 次项系数( 为最小系数非零次项次数),则 构成 中理想升链从而稳定为 。因而对某个形式幂级数 ,不妨设其非零项次数大于等于 部分和上一个证明完全无异),则会得到一系列( 被消去后变成
这涉及到无穷多次求和的操作,但注意到其中 系数(对次数大于等于 时)形如可和,从而也是形式幂级数。

(Gordon,虽然称为Dickson引理) 中单项式组成的集合关于整除关系只有有限多极小元

证明 的情况,其它情况同理。考虑如中一样将单项式列出,横轴为诸 而纵轴为诸 ,那么取第一列中属于 的极小元,则它小于等于一切再它右上的元素,从而第二列之后再取最小的有极小元的列时,取得的极小元至少比第一次取得者低一行……如此往复则至多可以取有限次。

注:5.3的证明对任何有限生成的自由Abel群均适用。

于是我们有了Hilbert基定理的另一个证明:对 的理想 ,它中多项式 在字典序意义下的首项组成单项式的集合,关于整除关系只有有限多极小元,取有限个极小元对应首项的多项式,一步步消去 的首项,从而由字典序的良序性可以把 消除至

事实上上面证明了 有一组有限Gröbner基。

不变量的有限生成性

Reading: Section 1.5

利用基定理可以证明一些不变量的有限生成性,至少是对有限群 作用于特征 维线性空间,或者 不整除 时。我们将证明 作用于 的不变量环 是有限生成 -代数。

是有限生成 -代数

关于次数有自然的分次(Abel群直和意义下)考虑 生成的理想 ,则依诺特性 ,其中诸 。现断言诸 是代数 的生成元,对 中多项式次数归纳证明之:

定义 -模间线性映射 -不变量,且 -不变量则

注1: 被称为Reynolds算子,起源于流体力学(Reynolds数那个Reynolds),最开始是考虑将从某处流过的液体换为考虑平均流过的液体(也就是被时间平移作用)。

注2:对满足 的分次诺特环 ,如果对 -子代数 ,存在 模同态 保持次数且使 不动,则此时称 的一个summand,此时可以照搬上文证明 是有限生成 -代数。

使如下 -模的正合列分裂,从而

现在回到6.1的证明:取 ,则从而因为 ,从而由归纳假设 皆为诸 的多项式。

注1:此处的论证适用于一大类分次环。对分次环 ,如果 诺特那么 诺特,从而类似地对次数归纳便知 为有限生成 -代数。如对 的子代数 ,存在 -模线性映射 满足 使 不动,则可以照搬上面过程论证 为诺特环。

注2:一般分次环中 的理想生成元没理由也能在 -代数意义上生成 。例如考虑 生成的 -代数, ,但 并不是 -代数 的生成元,事实上 并非有限生成代数甚至。

应当注意到Reynolds算子对任意群和任意域并非总是存在,例如

同构于 加群,且自然地作用于 。现在取 ,则易证 上作用必平凡(也就是全是恒等变换),则正合列不能被分裂,因而Reynolds算子不能存在(这里考虑Reynolds算子实则是考虑一堆 -模,这里 嵌入 )。

的证明首先可以拓展到紧群,因为紧群上可以积分,从而也可以定义类似的Reynolds算子为 的积分除以 的体积。

此外对非紧群 ,这个证明同样可以通过所谓Weyl's unitarian trick的方法拓展。具体来说, 是紧群,而我们有对应 ,它们对应的李代数是 ,其中 即为迹为零的 中矩阵。而我们知道在Lie群单连通时,Lie群的有限维表示和其对应Lie代数的有限维表示有对应,而虽然 并非单连通,但它足够“接近”单连通以至于 的有限维表示基本上是对应的。而 同时 ,也就是说 的复化是相同的,从而它们的复表示也相同。从而这给出 的有限维表示之间的对应,也就可以把 上的Reynolds算子对应到 表示的Reynolds算子上,如图所示
而这套论证在无穷维时则会基本失效,此时 的表示间并无太多对应(例如几乎所有 的不可约酉表示都有限,而几乎所有 的不可约酉表示都无限),这是因为 间的对应依赖指数映射,而无限维时矩阵exp的收敛性不能很好保证。

诺特模

Noether对定理6.2中 特征非零的情形给出了一个证明,不过这个证明并不能很好像Hilbert的证明一样推广的无限群。

Reading: Section 1.7 (似乎实则应当1.11(?
Exercises: 1.22, 1.23

诺特模 是所有子模都有限生成的模。特别的,环 是诺特环等于说环是诺特 -模。

与诺特环的情形一致,我们有:

下列条件等价:

  1. 是诺特模
  2. 任何 子模组成集合都有包含意义下的极大元
  3. 任何子模的包含升链稳定

对模的正合列 是诺特模当且仅当 是诺特模。特别的,诺特模的直和是诺特模。

只需证 诺特时 诺特即可。考虑取 的子模 ,取一组有限 使 的像生成 的像,再取 的有限生成元集 ,则它们的并生成

诺特环上的有限生成模是诺特模。

诺特环上 上模 有限生成也就是说有正合列 ,其中第一个映射为满同态。依引理可知 的直和为诺特模,从而 同构于 为诺特模。

交换代数中相当一部分内容就是在研究诺特环上的有限生成模,这些模比一般任意的模好处理得多。

如果不变量是有限生成代数,则合冲为有限生成理想。

为不变量的生成元个数,则有正合列(类似地这里也是 -代数同态,所以其实并非正合) 。这些生成元之间的关系,也就是不变量的一阶合冲为 $$ ,是有限生成理想,从而自然导致 -模同态 。依引理, 诺特,从而二阶合冲,也就是 有限生成,因而自然导致 ……这样就产生了正合列

事实上这还能进一步推广:

任何模都有自由解消。特别地,如果 是诺特环上的有限生成模,则 有自由解消其中 皆有限。

证明则是完全相同的。

这里的自由解消并不保证有限,也不保证唯一,但Hilbert证明了对一些特定环和其上的模,自由解消总是有限而且某种意义上几乎唯一,可以从分次自由解消中取出某种“最小”解消,然后其它自由解消就相当于在其基础上加上如 中两次交换像与核,变成更长的正合列这样的扰动。

是分次环, 上的分次模是形如的满足 -模。记 为将 中分次左平移 之后的新分次模,也即 分次自由 -模定义为一系列 的直和。

-模 的自由解消 分次自由解消,如果 是分次环,且诸 皆分次自由。

则Hilbert的定理可以被陈述为:

,则有限生成分次 -模都有长度不超过 的分次自由解消,其中项皆有限生成自由模。

这种消解的“几乎唯一”性给出了许多 的不变量,例如中的这些指数 等等。

不变量的有限生成性(续)

诺特证明了任意特征域上的,即

有限群 作用于特征域 维线性空间 ,则对应的不变量 是有限生成 -代数

,则 的根。 的系数都是诸 的基本对称多项式,从而是 -不变量。现在考虑全体 的这些系数(总共 个元素)生成的 -代数 ,我们有因为 上整(是 中首一多项式的根),所以 是有限生成 -模(考虑到 的线性组合bala)。 为有限生成 -代数,从而是诺特环,因此由 是诺特模,从而 是有限生成 -模,取一组有限生成元和一组 作为 -代数的有限生成元并起来,就得到 作为 -代数的有限生成元组。

注:诺特的证明相比Hilbert对特征零情形的证明,难以推广到无限群的情形。

对更一般的情形,我们有定理:

(Nagata,Haboush)设 代数闭, 是一个代数群,则下列条件等价:

  1. 在有限生成 -代数上作用的不变量总是有限生成 -代数
  2. 是约化群(reductive group)
  3. 如果 在线性空间 上作用有非零的不动向量 ,则存在 作用下不动的多项式 使得

注1:Nagata证明了3推1,1推2某种意义上也是因为Nagata找到了一个G不是约化群时候不变量并非有限生成的例子,Haboush证明了2推3。

注2:条件3某种意义上在说存在一个非线性的Reynolds算子。在特征零的情况下, 是线性多项式(它和Reynolds算子关系很大),而在特征 的情况下则会出现非线性的情况。

注3(Borcherds猜测): 的加群 “无关”(例如reductive便是没有形如 加群的正规子群),则不变量有限生成。

包括但不限于关于Fulton的Algebraic Curves中卡过我的/感觉有意思的/可能需要经常查看的/无端决定写在这里的东西。

1.1

意味着

考虑固定前 个变元,则 ,故 ,因而将 分次 可知 均等于 ,归纳可证

(1) 考虑则考虑 得到(2) 由(1)立即可知 时有

1.2

若干非代数集
1.
2.
3.

对于1,假设存在多项式 在该集合在为 ,则固定 ,多项式 有无穷多个根因而为 。2和3同理可搞。事实上这题是1.12结论的直接应用。

1.3

, ,

注意到

反过来把 代换为 代换为 即可得到反向的包含。

事实上此中有一些神奇的对应。不难证明从而有由此也可立即得证上面结论。

代数集 当且仅当

,假若 ,则

事实上我们也有

注意到我们考虑这种代数集和其理想之间的对应时完全没有用到多项式本身的性质。事实上 的对应也完全可以应用在一般的映射

1.4

,其给出 理想/根理想/素理想/主理想和 中包含 I的理想/根理想/素理想/主理想的一一对应

中理想 中包含 理想, ,乘法吸收律自然成立。余下同理。

1.5


1. ,故 不可约
2.

取模得到 ,从而不被 整除者只与其有有限多交点( 的零点)。

不可约而 可约

注意到

1.6

1.7

Hilbert弱零点定理可以被等价地叙述为如下定理的逆命题:若对 多元多项式 ,存在环量组合则诸 不能有公共零点。即若诸 无公共零点,则存在上述环量组合。

零点定理则可以被重述为如果 的零点都是 的零点,则存在 使得或者两个复多项式具有同样的复根, 当且仅当它们具有同样的不可约因子。

,此时 为根理想,给出(弱)零点定理和推论1的反例; 给出 素理想而 可约的例子, 中高次不可约多项式给出不对应单点的极大理想,给出推论2和推论3的反例;而对推论4, 有限维则的论证不依赖代数闭的性质,而反过来 中即给出逆命题不成立的反例。

a. 注意到如果能证明 是根理想,那么便立即有则由1.6节推论1,由 中不可约性可知其为整环。而事实上 中不存在幂零元,从而 中根理想,进而依对应定理可知 是根理想。
b. ,而是整环。

2.2

为代数集。如果 可以被表为两个非空真子代数集的并 ,则 亦然。

b. 上一题的直接推论。

2024.10.6开始依Kato的数论I以及MIT18.875自学代数数论,这里主要是MIT18.875中的gap和problem set答案

Lec 1&2

正特征域上绝对值均非阿,有限域上绝对值均平凡

注意到特征 域上 ,从而 。 如果 是有限域,则 ,从而 非零时

  1. 在试图证1.5的时候我发现 等等,再考虑到仿照 的想法得到如下证明:由 |-y|=|y| ,有 同理 ,若 则可知
  2. 注意到有将 映到 嵌入。

  1. 如果 ,则欲证 只需证 ,即 。现在只需证 推出 ,而假若不然 时, ,但因为 左边是右边的高阶无穷大,矛盾。

中英对照

statement 语句
expression 表达式
operands 操作数(如6*7中的6)
declare 声明
assignment 赋值
Compound assignment operators 复合赋值运算符(如+=)
identifier 标识符(变量名,必须从字母或_开始,不能从数字开始,只能有字母数字下划线)
immutable 不可变的
calling function 调用函数
asterisk 星号

数据类型

type()可判断数据类型。

float

round()四舍五入取整,math.ceil()/math.floor()上/下取整(需import math

string

字符串不可修改。
'"'''"""之一括起来。
+可连接两个string,用*(数字)可重复(数字)次。
innot in可判断字符串是不是另一个字符串的子串。
字符串可按ASCII码下字典序比较。
len()可以给出字符串长度。
从后往前遍历字符串可以用负数下标(如s[-1]是最后一个元素)。string_x [start: stop: step]可以给出子串,具体来说是start,start+step,...,step取负数可以反向字符串(如s[::-1]为翻转字符串),此时start大于等于stop才能取出子串。
string.lower()/string.upper()可以进行大写→小写/反之的操作。
string.replace(oldvalue, newvalue, count)返回把count个oldvalue替换为newvalue的string,默认全替换。
string.count(value, start, end)统计[start,end)中子串value的出现次数。
string.find(value, start, end)返回[start,end)中子串value第一次出现的位置,如无则返回-1。
string.split(separator, maxsplit)返回把string中按子串separator切分最多maxsplit次成的list。separator默认空格,maxsplit默认-1即全部切分。
string.startswith(value, start, end)/string.endswith(value, start, end)返回bool值,判断string是否以子串value起始/结尾。start/end默认是全序列。
string.strip(characters)/.lstrip(characters)/.rstrip(characters)返回string去除了起始和结尾/起始/结尾连续的字符characters的串,如果characters是字符串,那就去除全部起始结尾连续字符属于set(characters)中的串。characters默认为空格。
string.join(sequence)为将字符串的序列sequence中字符串连接起来,每两个相邻字符串中间插上一个string。
string.format(s1,s2,...)可用于格式化字符串,具体来说string中的{n}会被替换为sn,如果每一个括号都不填数那么默认从0开始依次增加(要么都填要么都不填)。
字符串有许多前缀。
| 前缀 | 功能 | 示例 | 说明 |
|---|---|---|---|
| r | 原始字符串字面量,阻止字符串中字符被解释为转义字符。 | r'C:\Program Files\Python'便会使得字符串原样成为C:\Program Files\Python|
| b | 字节字符串字面量,表示字符串以字节序列的形式存储。 | b'hello' | 主要用于处理二进制数据,例如文件I/O。 |
| f | f-字符串 (Formatted String Literals),允许在字符串中嵌入表达式。 | f'{name} is {age} years old' | 使用花括号{}将表达式嵌入到字符串中,并进行格式化。 |

list

list的+*的用法与string相同,但list可以修改。
del a[i]可用来删去list中index为i的项,类似的也可以删去片段。
sum(list), max(list), min(list) 返回list的求和、最大值、最小值
list.append(elmnt)将elmnt加入到list结尾
list.extend(seq)将列表seq放在list结尾
list.insert(pos, elmnt)在pos位插入elmnt(原list[pos]向后移动)
list.pop(pos)删去list[pos]并将其返回。默认pos=-1,即删结尾元素。
list.remove(elmnt)将elmnt在list中第一次出现的位置删去,不返回值。
list.count(value)
list.index(elmnt)返回elmnt在list中第一次出现的位置
list.sort(reverse=True|False, key=myFunc)默认reverse=False,key为自定义的比较函数(默认<)
list.reverse()翻转list

Tuple

tuple有序且不可变,有通常的指标、切片、+*操作。
elmnt in/not in tuple是bool值,表达elmnt在/不在tuple中。
len(),sum(),min(),max(),sorted(),count(),index()对于tuple均照常(sorted返回list)。
Tuple可以一次将多个分量以坐标形式(如pos = (x, y, z))packing起来,也可以按分量分别赋值给以逗号分隔开的多个变量(如x, y, z = pos)。
zip()可将多个list/tuple/string等打包成按分量的tuple并返回一个tuple的迭代器,用如list()可将之list化,合并按最短的那个为准(如list(zip([1, 2], [1, 2, 3]))是[(1, 1), (2, 2)])

Set

Set无序而且不包含重复元素,可以包含unchangeable objects(如number,string,tuple),但不能包含changeable objects(如list,dictionary)。
用大括号如正常数学中那样可以创建一个集合。
Set中有照常的innot inlen()sorted()(sorted返回list)。
set1 & set2set1.intersection(set2)是交集运算(均为返回交集但不修改原集合),同理|.union()并,-.difference()差,^.symmetric_difference()是对称差。
set.add(elmnt)添加elmnt。
set.remove(item)删去item,如果不存在会报错。
set.discard(value)删去value,如果不存在不会报错。
set(list/string)可以将list/string转换为set
x.issubset(y)/.issuperset(y)判断x是否是y的子集/父集

Dictionary

Dictionary是无序的查找表,由(key,value)对组成,key只能是不可变对象,一key不可重复,value可以重复。
Dictionary可以通过如{ key1 : value1, key2 : value2, key3 : value3 }的大括号创建,也可通过如dict(a = 'a', b = 'b', t = 't')的用法创建,也可通过如dict([('one', 1), ('two', 2), ('three', 3)])的方式创建(里面dict()内小中括号并无区别,list和tuple都一样)。
dictionary_name[key] = value可以在dict中加入或更新key的value。
del dict[key]可以remove掉key,没有时会报错。
innot in可以key判断在或不在字典中。
dict.keys()/.values()/.items()返回dict的key/value/(key, value)的tuple组成的list。
dict.get(keyname, value)返回keyname对应的值,如不存在返回value。value默认为None
dict.update(iterable)用可迭代的iterable来更新dict,可迭代的如某个dictionary或者(key,value)的list等等。
dict.pop(key)/.popitem(key)romove掉key并返回其value/(可以看作随机remove)remove掉并返回最后一个key-value对,没有时会报错。

内置函数

print

以特定格式输出可以考虑modulo operator %,format()和f-strings。

sorted

sorted(iterable, cmp=None, key=None, reverse=False)对任何可迭代对象iterable排序并返回排序后的可迭代对象。例如sorted(list, reverse=True/False)返回list排序后的序列,默认从小到大排序(默认reverse=False),事实上迭代器都可以(如

reversed

和sorted同理。

map

map(function, iterable, ...)对参数序列iterable中每一个元素调用function。

eval()

eval(expression[, globals[, locals]])用于执行一个字符串表达式expression。

next()

next(iterable[, default])返回迭代器的下一个项目。default可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。

0%