python next iter

发布时间 2023-10-08 08:24:10作者: emanlee

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