迭代器:(注意迭代器是python3的特性)
迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器。
eg:
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
print (next(it)) # 输出迭代器的下一个元素
# 输出 1
举个实例:map函数,返回的就是迭代器,具体是怎么回事?
(还有zip函数,返回的也是迭代器,这是为了节省内存,为了得到列表,可以使用list()方法转化为列表)
>>>?def?square(x)?: ? ? ? ??# 计算平方数 ... ? ??return?x **?2 ... >>>?map(square,?[1,2,3,4,5])?? ?# 计算列表各个元素的平方 <map?object?at?0x100d3d550>?? ??# 返回迭代器
从图中可以看出来,返回的是迭代器的表头元素的地址,
这时候只需要遍历这个迭代器,就可以返回所有结果:
? >>>?list(map(square,?[1,2,3,4,5]))???# 使用 list() 转换为列表 [1,?4,?9,?16,?25]
列表和迭代器的区别:
- 列表不论遍历多少次,表头位置始终是第一个元素
- 迭代器遍历结束后,不再指向原来的表头位置,而是为最后元素的下一个位置
|