迭代器介绍
- 列表生成器generator:直接生成且可以调用
python
a=[i*2 for i in range(10)]
print(a)
print(a[2])
结果:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
4
- 迭代器:
python
a=(i*2 for i in range(10))
print(a) #内存地址
# 方式一:使用__next__()获取当前生成
print(a.__next__()) #值为0
print(a.__next__()) #值为2
# 方式二循环产生
b=[]
for i in a:
b.append(i)
print(b) #[4, 6, 8, 10, 12, 14, 16, 18]
- 可迭代:iterable
- 所有可以使用for循环的都是可迭代的,如list、tuple、dict、set、str、generator列表生成器等都可迭代
- 可迭代的都可以变成迭代器
python
a=[1,2,3,4,5,6,7,8,9]
b=iter(a) #把可迭代对象变成迭代器,迭代器是无限大数据流
print(next(b)) #同__next__()
print(isinstance(b, Iterator)) #判断是否是迭代器