技术文章 > 常见问题 > Python常见问题 > 正文

python不支持next方法吗

silencement

Python3中的File对象不支持next()方法。 Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器中检索下一个项目。 如果给定了默认值,则在迭代器耗尽返回此默认值,否则会引发StopIteration。 该方法可用于从文件对象读取下一个输入行。

语法

以下是next()方法的语法 -

next(iterator[,default])

参数

iterator − 要读取行的文件对象default − 如果迭代器耗尽则返回此默认值。 如果没有给出此默认值,则抛出 StopIteration 异常

返回值

此方法返回下一个输入行

英文文档:

next(iterator[, default])
Retrieve the next item from the iterator by calling its __next__() method. If default is given, it is returned if the 
iterator is exhausted, otherwise StopIteration is raised.

说明:

1. 函数必须接收一个可迭代对象参数,每次调用的时候,返回可迭代对象的下一个元素。如果所有元素均已经返回过,则抛出StopIteration 异常。

>>> a = iter('abcd')
>>> next(a)
'a'
>>> next(a)
'b'
>>> next(a)
'c'
>>> next(a)
'd'
>>> next(a)
Traceback (most recent call last):
 File "<pyshell#18>", line 1, in <module>
  next(a)
StopIteration

2. 函数可以接收一个可选的default参数,传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出StopIteration 异常。

>>> a = iter('abcd')
>>> next(a,'e')
'a'
>>> next(a,'e')
'b'
>>> next(a,'e')
'c'
>>> next(a,'e')
'd'
>>> next(a,'e')
'e'
>>> next(a,'e')
'e'

更多学习内容,请点击Python学习网

免费视频教程
相关文章
 python生成器中的send()方法和next()方法
 神秘而强大的Python生成器精讲
 看完这篇,你就知道Python生成器是什么
 python中yield生成器用法详解
相关视频章节
 列表解析和生成器
 yield与生成器
 生成器
 迭代器和生成器综合例子
 Python中的生成器
视频教程分类