Python:迭代器和生成器

大数据学习路线图

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回Python教程首页]

迭代器

迭代器Iterator可以记住遍历的位置的对象,从第一个元素开始访问,然后依次访问直到所有的元素都被遍历。迭代器只能往前不会后退,有两个基本方法:iter()next()iter()用来创建迭代器,next()用来访问迭代器的下一个元素。字符串、列表或元组对象都能用来创建迭代器,同时也支持for循环遍历,例如:

>>> list = [1,2,3]
>>> iter_list = iter(list)    #iter()读取列表创建迭代器
>>> print(next(iter_list))
1
>>> print(next(iter_list))
2
>>> print(next(iter_list))
3
>>> print(next(iter_list))   #上一步已经遍历完成,再次调用next()会报StopIteration的错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration
>>> str = "abc" 
>>> iter_str = iter(str)    #iter()读取字符串创建迭代器
>>> print(next(iter_str))
a
>>> print(next(iter_str))
b
>>> print(next(iter_str))
c
>>> tuple = (4,5,6)
>>> iter_tup = iter(tuple)  #iter()读取元组创建迭代器
>>> for var in iter_tup:    #for循环遍历元组
...     print(var)
... 
4
5
6