iter()用于创建迭代器,next()用于输出迭代器的下一个元素:
names = ['微湘菜', '小湘菜', '大湘菜', '巨湘菜'] iterName = iter(names) for i in range(4): print(next(iterName))
结果为:
微湘菜
小湘菜
大湘菜
巨湘菜
创建一个迭代器需要在类中实现两个方法 __iter__() 与 __next__() ,这在python面向对象会详细解释
使用了yield的函数即生成器(generator),返回一个迭代器。每次遇到yield时会暂停运行,在下次执行是会从当前暂停位置继续运行:
def generator(): print('s') while True: print('微湘菜') yield '小湘菜' print('大湘菜') g = generator() print(next(g)) print(next(g))
结果为:
s
微湘菜
小湘菜
大湘菜
微湘菜
小湘菜
一般在迭代器中都要存在循环,否则难以迭代
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python迭代器和生成器 - Python技术站