生成器
编程中常遇到这样的问题,要生成一个大的列表或把一个大文件读入内存. 如果一次性把大的列表或数组生成出来,或把文件读入内存中,将十分消耗内存资源.
现在有这样一个问题, 要生成一千万个随机整数, 并求和.
解决思路有两种,第一种: 先生成一千万个随机整数,然后遍历求和.
第二种: 每生成一个随机整数,求一次和.
显然是第二种方式比较省内存. 使用生成器就可以完美的实现.
python的生成器
获得生成器
在python中有两种获得生成器的方式:
第一种: ()
和列表生成式[i for i in range(10)]
很像. 列表生成式返回的是list, 而这个返回值是generator.
gen = (random.randint(1, 100) for i in range(1000 * 10000))
第二种: yield
函数中存在yield关键字是, 函数返回值是一个generator.
d