0%

迭代器是很多流行的编程语言的标准配置,用以表示逻辑上有顺序的一系列元素,通常是一次性的和惰性的。尤其是在 Python 中,迭代器得益于其高效且易用的特性,以及如 more-itertools 等社区维护的优秀开源包,得到了广泛的应用。本文将对 Python 中的迭代器进行简单的介绍,并辅以示例帮助理解。

灵活地使用迭代器需要解决三个问题:迭代器从哪来、迭代器怎么变和迭代器得到啥。下面的代码块是一个典型的迭代器使用实例,三行代码分别对应了迭代器从哪来、迭代器怎么变、迭代器能干啥。

1
2
3
numbers = range(42) # where iterators come
doubled = map(lambda n: n * 2, numbers) # how iterators transform
summary = sum(doubled) # what iterators can do

当然,与之基本等价的更地道的写法是 summary = sum(n * 2 for n in range(42)),而这通常适用于较为简单的操作。

阅读全文 »

高考,即普通高等学校招生全国统一考试,是中国大陆学生升学到高校,进而开始本科阶段学习的最主要途径。近年来,对高考的改革动作不断;且又经历了新冠肺炎疫情导致的 2020 年高考日期推迟,可以说恢复正常的 2021 年高考既熟悉、又陌生。

阅读全文 »

为游戏「江湖悠悠」撰写的收集档案。

阅读全文 »

劳逸结合、快乐生活。共完成 13 题。

阅读全文 »

心到神知、上供人吃。共完成 17 题。

阅读全文 »

假期正式结束了!这是新学期的第一份月报。诸事缠身,共完成 23 题。

阅读全文 »

快过年了。重启「Rust 从入门到放弃」计划。

本月大概是滑动窗口月了,战绩 30 题。

阅读全文 »

新年新气象,跑步逃离魔幻的 2020 年。

共计 30 题。充满并查集的一个月,已会默写。

阅读全文 »

不会吧?不会吧?不会有人还在用 os.path 等模块来操作文件系统路径吧?难写又难读,看着就头痛。

今天我们将介绍 pathlib 模块。它同 os.path 模块一样也是 Python 标准库的一员。它提供了面向对象的路径操作,简洁易用、语义明确,让你真正体验到「人生苦短,我用 Python」的路径操作。

模块概览

pathlib 模块中最重要的内容就是 Path 类,我们可以简单地使用一个路径字符串构造它,例如 Path('~/Downloads')。同时它提供了许多易于理解和使用的方法。这里将不逐一说明,使用时可在官方文档检索方法的详细说明。以下提供了它们与命令式风格的模块提供的函数的简单对照,但功能并不完全一致,可供参考。

阅读全文 »