迭代器
迭代器是一个可以记住遍历的位置的对象。
迭代器有两个基本的方法:iter() 和 next()。
使用对象内置的__iter__()方法生成迭代器
1 | it = name.__iter__() |
使用内置工厂函数生成迭代器
1 | it = iter(name) |
迭代器通过其内建的 iter.next() 方法,或通过 Python 内建的 next() 来迭代下一个元素,直到最后触发 StopIteration异常后表示迭代结束。
实例:
1 | name = {'张三': 24, '李四': 25, '王五': 20} |
输出为三个key的值
而for循环,本质就是调用了迭代器
for x in name 把name变成了一个迭代器,然后调用next方法,而且不用写 except StopIteration
作用
优点
1.提供一种不依赖索引的取值方式,这样就可以遍历那些没有索引的可迭代对象(字典,集合,文件)
2.迭代器与列表比较,迭代性是惰性计算,更省内存
缺点
1.永远无法获取迭代器的长度,使用不如列表索引灵活,比如要获取第三个,则必须要一个个next
2.一次性,只能往后取,无法倒着取