# 可迭代对象是任何可以逐次按需访问其元素或值的对象。# 例如,列表是可迭代的,可以逐项遍历列表中的每个元素。# 一个可迭代对象必须有一个关联的迭代器,这是由该可迭代对象的实例方法 __iter__() 返回的。# 迭代器就是执行实际迭代的对象,旨在提供对正在遍历的可迭代对象中下一项的访问准备。# 为了成为可迭代对象,对象需要实现特殊方法 __next__(),该方法不接收任何参数,仅仅在遍历的可迭代对象中推进到下一项并返回该值。# 迭代器还必须实现方法 __iter__(),此方法返回迭代器本身(通常是self)。# 这种约定是必要的,这样接受可迭代对象的代码也可以毫无困难地接受迭代器,正如你很快就会看到的那样。# 所有集合都是可迭代对象,并且每个集合至少有一个专用的、与之关联的迭代器类。# 可迭代对象specials = ["a", "b", "c", "d", "e"]# 迭代器first_iterator = specials.__iter__()second_iterator = specials.__iter__()print(first_iterator.__next__()) # aprint(first_iterator.__next__()) # bprint(second_iterator.__next__()) # aprint(second_iterator.__next__()) # bwhile True:try:# 一旦迭代器完成了对可迭代对象的遍历,再次调用 __next__() 就会引发特殊异常 StopIterationprint(first_iterator.__next__())except StopIteration:break# iter() 和 next()first_iterator = iter(specials)print(next(first_iterator))print(next(first_iterator))while True:try:print(next(first_iterator))except StopIteration:break
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。