网址:GitHub: Where the world builds software
这不是一个专门的刷题网站,而是代码托管平台,里面有数百万个Python项目,其中不乏优秀的Python学习类资源,比如说:
Python面试题集合,14.6star
作者收集了上百个Python面试真题,包括语言特性、操作系统、数据库、网络编程等
举个例子,迭代器和生成器。
这里有个关于生成器的创建问题, 问:将列表生成式中[]改成() 之后数据结构是否改变?答案:是,从列表变为生成器
>>> L = [x*x for x in range(10)]
>>> L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x*x for x in range(10))
>>> g
<generator object <genexpr> at 0x0000028F8B774200>
答:通过列表生成式,可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。
而且,创建一个包含百万元素的列表,不仅是占用很大的内存空间,如:我们只需要访问前面的几个元素,后面大部分元素所占的空间都是浪费的。
因此,没有必要创建完整的列表(节省大量内存空间)。在Python中,我们可以采用生成器:边循环,边计算的机制—>generator
还有其他不错的刷题项目,比如: