Python 的 next(~)
方法返回迭代器中的下一项。
参数
1. iterator
| iterator
我们应该返回下一个项目的迭代器。
2. default
| any
| optional
当我们到达迭代器末尾时要返回的值。
返回值
返回值取决于以下情况:
案子 |
返回值 |
---|---|
尚未耗尽迭代器中的所有项目 |
迭代器中的下一项 |
已用尽迭代器和提供的 |
|
已用尽迭代器中的所有项目,并且未提供 |
错误 |
例子
基本用法
要获取迭代器中的下一项test
:
a = ['hi', 'bye', 'see you']
# converting the list to an iterator called test
test = iter(a)
print(next(test))
print(next(test))
print(next(test))
hi
bye
see you
请注意,每次调用 next(~)
方法时,我们都会返回迭代器 test
中的下一项。
默认参数
指定 'This is the default value'
的默认值:
b = ['hi', 'bye', 'see you']
# converting the list to an iterator called test
test = iter(b)
print(next(test, 'This is the default value'))
print(next(test, 'This is the default value'))
print(next(test, 'This is the default value'))
print(next(test, 'This is the default value'))
hi
bye
see you
This is the default value
在第四次调用 next(~)
方法时,我们返回 'This is the default value'
,因为我们已经耗尽了迭代器 test
中的所有项目。
StopIteration错误
如果我们不提供 default
值并且到达迭代器的末尾:
c = ['hi', 'bye', 'see you']
# converting the list to an iterator called test
test = iter(c)
print(next(test))
print(next(test))
print(next(test))
print(next(test))
hi
bye
see you
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-11-74eba8c03080> in <module>
7 print(next(test))
8 print(next(test))
----> 9 print(next(test))
StopIteration:
我们看到,由于迭代器 test
中没有更多项,因此引发了 StopIteration
异常。
相关用法
- Python BeautifulSoup next_sibling属性用法及代码示例
- Python BeautifulSoup next_element属性用法及代码示例
- Python next()用法及代码示例
- Python BeautifulSoup next_siblings属性用法及代码示例
- Python BeautifulSoup next_elements属性用法及代码示例
- Python networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path用法及代码示例
- Python networkx.classes.function.edge_subgraph用法及代码示例
- Python networkx.algorithms.tree.mst.maximum_spanning_edges用法及代码示例
- Python networkx.algorithms.bipartite.basic.color用法及代码示例
- Python networkx.algorithms.bipartite.cluster.latapy_clustering用法及代码示例
- Python networkx.readwrite.json_graph.adjacency_data用法及代码示例
- Python networkx.algorithms.bipartite.edgelist.generate_edgelist用法及代码示例
- Python networkx.Graph.neighbors用法及代码示例
- Python networkx.DiGraph.__contains__用法及代码示例
- Python networkx.drawing.nx_pylab.draw_random用法及代码示例
- Python networkx.convert_matrix.to_pandas_edgelist用法及代码示例
- Python networkx.DiGraph.__init__用法及代码示例
- Python networkx.algorithms.cycles.recursive_simple_cycles用法及代码示例
- Python networkx.drawing.layout.random_layout用法及代码示例
- Python networkx.algorithms.link_prediction.within_inter_cluster用法及代码示例
- Python networkx.algorithms.non_randomness.non_randomness用法及代码示例
- Python networkx.algorithms.traversal.depth_first_search.dfs_tree用法及代码示例
- Python networkx.MultiGraph.clear用法及代码示例
- Python networkx.algorithms.operators.product.cartesian_product用法及代码示例
- Python networkx.algorithms.traversal.depth_first_search.dfs_labeled_edges用法及代码示例
注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 Python | next method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。