一个账号 发表于 2020-3-21 12:17:45

Python next() 函数

本帖最后由 一个账号 于 2020-3-21 12:21 编辑

Python next() 函数

语法

next(iterator[, default])

参数



参数描述

iterator迭代器

default当没有下一个元素时返回该默认值。



描述

next() 函数用于获取迭代器的下一项。如果没设置 default 参数,又没有下一项元素则会触发 StopIteration 异常。

返回值

返回迭代器的下一项。

例子

>>> next()   # 必须是迭代器
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
    next()
TypeError: 'list' object is not an iterator
>>> iterator = iter()
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
3
>>> next(iterator)
4
>>> next(iterator)   # 没有下一个元素了
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
    next(iterator)
StopIteration
>>> next(iterator, "没有下一个元素了!")
'没有下一个元素了!'

永恒的蓝色梦想 发表于 2020-3-25 09:29:50

本帖最后由 永恒的蓝色梦想 于 2020-4-10 18:27 编辑

一种可能的实现

def next(iterator,default=_no_arg,/):
    if hasattr(iterator,'__next__') and callable(iterator.__next__):
      if default is _no_arg:
            return iterator.__next__()

      try:
            return iterator.__next__()

      except StopIteration:
            return default

    else:
      raise TypeError(f"'{iterator.__class__.__name__}' object is not an iterator")
页: [1]
查看完整版本: Python next() 函数