迭代
如果给定一个tuple/list
,我们可以通过for循环
来遍历这个list/tuple
,这种遍历我们称为迭代。任何可迭代的对象都可以用for
来遍历。
dict.items()
可以将dict
转换为list
列表生成式
python
内置的,可以用来快速创建list
的生成式
[x + y for x in "abc" for y in "123"]
生成器
可以一边循环,一边计算的机制。generator
保存的算法。
generator
也是一个可迭代对象!
g = (x * x for x in range(1,11))
generator
提供next()
方法来获取下一个元素值:
next(g)
yield:
如果一个函数中包含yield
关键字,那么这个函数就不再是一个普通函数,而是一个generator
!
迭代器:iterator
python
的迭代器(iterator
)对象表示的是一个数据流,iterator对象
可以被next()
函数调用并不断返回下一个数据,知道没有数据时抛出StopIteration
错误。
可以把这个数据流看作成是一个有序序列,但是我们不能提前知道序列的大小,只能不断通过next()
函数实现按需计算下一个数据,所以Iterator
的计算是惰性的,只有在需要返回下一个数据时它才会计算。
可迭代对象(iterable)
|--迭代器 iterator
| |--生成器 generator
|--字符串 str
|--列表 list
|--元组 tuple
|--集合 set
|--字典 dict
生成器隶generator
属于迭代器iterator
。生成器的优势:节省内存、代码简洁
iter()
可快速将可迭代对象
转换为迭代器