python next iter
python next iter
https://blog.csdn.net/weixin_42782150/article/details/109315355
Python 的列表推导式在处理的数据量很大的时候,性能会有所下降。因为很多时候用户并不需要一下子取出所有数据,只是在需要的时候才拿,这时候我们就可以用到迭代器了。
迭代器是 Python 中一个抽象的概念,它是一种类,具有 __next__ 方法来实现遍历 和使用 __iter__ 方法返回自己本身。
这里有三个概念要清晰:
第一 迭代器概念,它不是容器,它是一种特殊的类,有__next__() 供循环遍历、__iter__() 返回一个特殊的迭代器对象,
这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成
第二 iter() 方法是python的内置函数,它可以将字符串、列表、元组等容器变成迭代器。
iter() 转换的对象必须是 iterable的,不一定是容器,可以直接作用于 for 循环的对象统称为可迭代对象。
第三 next() 方法是 python 的内置函数。在对迭代器进行遍历时候,如果没有后续元素了,next()会抛出一个 StopIteration 异常。
链接:https://blog.csdn.net/u010701274/article/details/122084809
描述:
next() 返回迭代器的下一个项目。
next() 函数要和生成迭代器的iter() 函数一起使用。
语法:
next 语法:
next(iterable[, default])
参数说明:
iterable – 可迭代对象
default – 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。
备注:
list、tuple等都是可迭代对象,我们可以通过iter()函数获取这些可迭代对象的迭代器。然后,我们可以对获取到的迭代器不断使⽤next()函数来获取下⼀条数据。
iter()函数实际上就是调⽤了可迭代对象的 iter ⽅法。
代码范例01:
# 首先获得Iteration对象 it = iter([1,2,3,4,5]) # 循环 while True: try: # 获得下一个值 x = next(it) print(x) except StopIteration: # 遇到StopIteration就退出循环 break
代码范例02:
li = [11, 22, 33, 44, 55] li_iter = iter(li) next(li_iter) >>> 11 next(li_iter) >>> 22 next(li_iter) >>> 33 next(li_iter) >>> 44 next(li_iter) >>> 55 next(li_iter) >>>
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-15-9584f6653730> in <module>
----> 1 next(li_iter)
StopIteration:
注意,当我们已经迭代完最后⼀个数据之后,再次调⽤next()函数会抛出 StopIteration的异常 ,来告诉我们所有数据都已迭代完成,不⽤再执⾏ next()函数了。
————————————————
链接:https://blog.csdn.net/weixin_42782150/article/details/109315355