python中的next()函数

API

def next(iterator, default=None): # real signature unknown; restored from __doc__
    """
    next(iterator[, default])
    
    Return the next item from the iterator. If default is given and the iterator
    is exhausted, it is returned instead of raising StopIteration.
    """
    pass

python中next()的具体的形式为:next(iterobject,defalt)

  1. 第一个参数是可迭代的对象
  2. 第二个参数可以写也可以不写,不写的时候,如果可迭代的元素取出完毕,会返回StopIteration异常,第二个参数写的时候,当可迭代对象迭代完后,会返回第二个参数写的那个元素。

通过调用 next(data_iterator)你可以获取迭代器的下一个数据项。迭代器是一种对象,它允许你逐个访问集合中的元素,而无需提前加载整个集合到内存中。使用迭代器可以节省内存并提高效率,特别是当处理大型数据集时。需要注意的是,如果迭代器已经达到了最后一个元素,再次调用 next 方法将会引发 StopIteration 异常。你可以使用 try-except 块来捕获这个异常并进行相应的处理。

1)未使用第二个可选参数

# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break

输出:1,2,3,4,5 

 2)设置第二个可选参数值为-1

# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
    try:
        # 获得下一个值:
        x = next(it, -1)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break

输出:1,2,3,4,5,-1,-1,-1,-1.............

data = next(data_iterator)

batch = data

loss = model.module._calc_loss(batch, outputs)

python内置函数next()方法用法详解_python next()_IT之一小佬的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/131694144