17 python 初学(迭代器)

生成器都是迭代器,迭代器不一定是生成器

迭代器满足两个条件: 1. iter方法 2. next方法

# list, tuple, dict, string: iterable(他们都有iter方法,所以都是可迭代对象)
# 调用 iter 方法返回的 d 就是一个迭代器
# l = [1, 2, 3, 4, 5]
l = {'name': 'lily', 'age': 18}
d = iter(l)  # 通过 iter 直接返回一个可迭代对象
print(d)   # <list_iterator object at 0x0000001EA3547518>

print(next(d))   # name
print(next(d))   #age
View Code

 

for i in [1, 2, 3, 4]

for 循环内部完成三件事:

    1. 调用可迭代对象的 iter 方法返回一个迭代器对象  

    2. 不断调用迭代器的 next 方法  

    3. 处理 StopIteration

 

更多参考:http://www.cnblogs.com/yuanchenqi/articles/5769491.html

posted on 2019-01-13 18:16  mlllily  阅读(121)  评论(0编辑  收藏  举报