本文将从三个方面来介绍python当中生成器和列表的区别。主要包括生成方式,主要区别及使用场景三个方面。
一、生成方式
列表 ->[i for i in range(10)]
生成器 -> (i for i in range(10))
我们分别打印出来两个不同的变量看看差异。
可以看到,使用 (i for i in range(10))生成了一个生成器。
二、主要区别
- 普通函数及生成器函数
- 普通函数
def common(): print("common function") return 1
- 生成器函数
def my_gen(): for i in range(10): yield i
上图可看到python当中普通函数以及生成器函数的书写方式。普通函数在return时会直接返回退出,其后面的操作也不会被执行,不管后面有多少个return都会在第一个return的时候进行返回。而生成器函数最重要的特点是它在遇到yield时不会立即终止,而是暂停在yield的位置,等待下一次调用
- 普通函数
- 迭代
生成器函数可以使用next()来进行迭代,在迭代终