本文是个人对于 项目:100天Python从新手到大师 的学习的一些心得和笔记,不会包含大量知识点或代码,只是简单记录学习相关知识的心得,如有不妥之处,多多包涵,也欢迎批评指正。
Day16重要知识点+数据结构和算法
这部分主要包括一些Python中的常用而琐碎的特性及方法,和算法相关的介绍及入门。
重要知识点
- 生成式(推导式)的用法 -
正如我在前一篇笔记中所说,Python的强大之处有很大一部分来自于列表的灵活使用。用生成式生成列表(集合、字典)是Python的一大特性,同时,Python可以在一行内进行列表(集合、字典)生成式的for
循环和if
判断。这是一些其他编程语言中往往需要十几行代码并且需要额外的变量辅助才能完成的事情。 - 嵌套的列表
同样如同我在前文中说的,列表中的对象可以是列表,这就形成了嵌套列表,Python中生成这种多维列表也非常简单,而且对应的各个组成列表也是可以自由使用各种方法的。 heapq
模块(堆排序)
堆排序是算法中一类特殊的树状排序,Python内置的heapq
模块中支持了大根堆和小根堆的方法。在获取极大值或极小值时,这也不失为一种方法,具体我们在下文算法中会提到一部分。itertools
模块
迭代器是编程中的另一个列表(集合、字典)工具,可以理解为我们需要生成一系列有规律的数据时,我们可以以迭代器器的方式储存这些数据,在需要使用它们的时候,再进行按规律的调用,以此达到高效率的目的。Python中有很多种迭代器的生成方法,其中内置的itertools
模块提供了一系列简单的生成迭代器的好用的方法。它的用法后文还会提及。collections
模块
这