1. python中的生成器(generator)的理解
概念理解:
生成器类似于一个函数,但是不同于一般函数一次返回所有的值,生成器一次只能产生一个值,这样内存的消耗会大大减少,而且生成器具有可迭代性,所以可以调用生成器函数快速处理前几个返回值。
优点:
- 可迭代性(iterable)
- 自动记录上次迭代的位置,且下次调用会继上次调用的位置继续向下迭代
- 消耗内存较少
2. python中 list 与 generator 的区别
列表(list)与生成器(generator)在 python 中较常使用。区分两者的区别对于正确使用两者提高代码运行效率有很大帮助,以下是个人对于两者的理解和使用示例。
2.1 代码示例:
>>> # 列表生成式,生成一个列表,此时会分配一块内存存储整个列表
>>> list = [ x ** 3 for x in range(5)]
>>>> print(list) # 打印出来整个列表
[0, 1, 8, 27, 64]
>>>
>>> # 生成器表达式,生成一个生成器(可迭代),此时并不会分配内存存储整个生成器
>>> generator_ex = (x ** 3 for x in range(5))
>>