day0315 迭代器

一. 迭代器

1.什么是可迭代器?

除了数字和布尔值之外,其他数据类型都是可迭代对象。(字符串,列表,元组,字典,集合)

2.可迭代协议

2.1 可以被迭代要满足的要求就叫可迭代协议,可迭代的定义非常简单,就是内部实现__iter__.

2.2 迭代器遵循迭代器协议:必须要有__iter__方法和__next__.

2.3  for 循环,能循环一个可迭代对象步骤:将可迭代对象转化成迭代器。内部使用__next__方法,一个一个取值,加了异常处理功能,能取值到底后自动停止。

2.4 a=对象.__iter__(创建一个迭代器)

l={'k1':1,'k2':[11,33,'Ada'],'k3':'Tro','k4':('k1','k2')}
a=l.__iter__()          #创建一个迭代器。
print(a.__next__())         #一行一行的取值。
print(a.__next__())
print(a.__next__())
print(a.__next__())
结果:
k1
k2
k3
k4
#字典的迭代器生成的是键。

  注意:迭代器的特性:1.惰性机制。2.不能从下往上走。3.一次性的,用完就没了。

l=[1,2,3,4,'try',6,['kiss','you','godbye'],9,8]
a=l.__iter__()
while True:
    try:
        print(a.__next__())
    except StopIteration:
            break
结果:

1
2
3
4
try
6
['kiss', 'you', 'godbye']
9
8

  

 

posted @ 2019-03-15 19:19  醉醺醺的  阅读(119)  评论(0编辑  收藏  举报