迭代器、生成器

迭代器

lst = range(10) #生成一个枚举列表 从0-9

itr = iter(lst) #生成一个迭代器

itr.next() #访问迭代器方法

遍历迭代器

try:
    while True:
        val = itr.next()
        print val
except StopIteration:
    pass

注意:

1、如果对list dict tuple 用for遍历,则for内部自动将之转换为迭代器

2、enumerate给迭代器元素生成索引

 

生成器

生成器也是迭代器的一种,就是用了yield关键词

def get_0_1_2():
    yield 0
    print '打印了0'
    yield 1
    yield 2
g = get_0_1_2()
print g.next()
print g.next()

 

你可能感兴趣的:(迭代器)