一、什么是迭代器
1.可迭代(Iterable):直接作用于for循环
2.迭代器(Iterator):不仅可迭代,还可以被next调用
#可迭代
1 t = [i for i in range(5)] 2 print(t) 3 for i in t: 4 print(i)
[0, 1, 2, 3, 4]
0
1
2
3
4
1 #迭代器 2 3 t = (i for i in range(5)) 4 print(t) 5 for i in t: 6 print(i)
<generator object <genexpr> at 0x0000029B9C3A6620>
0
1
2
3
4
二、判断是否为迭代器
1.相关模块
collections模块:Iterable,Iterrator,isinstance
2.使用方法
Iterable:可迭代
Iterator:迭代器
isinstance:判断变量是否为实例
扫描二维码关注公众号,回复:
2932270 查看本文章
3.案例
1 import collections 2 l1 = [i for i in range(5)] 3 l2 = (i for i in range(5)) 4 5 print('l1') 6 print(isinstance(l1,collections.Iterable)) 7 print(isinstance(l1,collections.Iterator)) 8 9 print('\nl2') 10 print(isinstance(l2,collections.Iterable)) 11 print(isinstance(l2,collections.Iterator))
l1
True
False
l2
True
True
三、迭代器化
1.相关函数
iter:让可迭代变量转化为迭代器
1 from collections import Iterable,Iterator 2 3 s = 'nihao wo shi zz' 4 print(isinstance(s,Iterable)) 5 print(isinstance(s,Iterator)) 6 7 Is = iter(s) 8 print(isinstance(Is,Iterable)) 9 print(isinstance(Is,Iterator))
True
False
True
True