1. 程式人生 > >17 python 初學(迭代器)

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