1.生成式(推导式)
https://it-chengzi.blog.csdn.net/article/details/112797506
2.生成器
https://it-chengzi.blog.csdn.net/article/details/112854977
3.迭代
过for循环遍历对象的每一个元素的过程。
4.迭代器
Python的迭代器表示的是一个元素流,可以被next()函数调用并不断返回下一个元素,直到没有元素时抛出StopIteration错误。
可以把这个元素流看做是一个有序序列,但却不能提前知道序列的长度,只能不断通过next()函数得到下一个元素,所以迭代器可以节省内存和空间。
5.总结:
- 凡是可作用于for循环的对象都是可迭代类型;
- 凡是可作用于next()函数的对象都是迭代器类型;
- list、dict、str等是可迭代的但不是迭代器,因为next()函数无法调用它们。可以通过iter()函数将它们转换成迭代器。
- Python的for循环本质上就是通过不断调用next()函数实现的。