Python next() 函式



Python 的 next() 函式用於迭代 Python 迭代器物件的內容,迭代器物件表示資料流。如果您將迭代器物件傳遞給此函式,它將返回其中的下一個專案。您可以使用此函式迴圈遍歷迭代器物件的所有元素。

next() 函式在內部呼叫給定迭代器物件的 __next__() 方法。如果您在用盡迭代器物件中的元素後呼叫此函式,它將引發異常。

您可以與 迭代器 物件一起提供“預設值”。如果迭代器用盡,則 next() 函式將返回指定的預設值,而不是引發 StopIteration 異常。

Python 檔案類方法提供了一個 next() 方法(在 python 3.x 中已棄用),它與此函式不同。此 next() 方法返回當前檔案的下一行的內容,而內建函式 next() 返回給定迭代器物件的下一個專案。

語法

以下是 Python next() 函式的語法:

next(iterator, default)

引數

以下是此函式的引數:

  • iterator: 表示迭代器物件。
  • default: 表示在發生異常時要返回的預設值。

返回值

此方法返回給定迭代器物件的下一個元素。

示例 1

以下是 Python next() 函式的基本示例:

iterator = iter({163, 884, 992})
print (next(iterator))

輸出

當我們執行上述程式時,它會產生以下結果:

992

示例 2

如上所述,當您嘗試檢索下一個元素並且物件中沒有可用元素時,此函式會生成 StopIteration 異常。

在下面的示例中,我們建立了一個包含 4 個元素的迭代器物件,並五次呼叫了 next() 函式,您可以觀察到在最後一次迭代期間它生成了一個異常。

iterator = iter({'Java', 'JavaFX', 'Coffee Script', 'OpenCV'})
print (next(iterator))
print (next(iterator))
print (next(iterator))
print (next(iterator))
print (next(iterator))

輸出

如果我們編譯並執行上面的程式,則會產生如下結果:

JavaFX
Java
OpenCV
Coffee Script
Traceback (most recent call last):
  File "/home/cg/root/22791/main.py", line 6, in 
    print (next(iterator))
StopIteration

示例 3

現在,讓我們嘗試使用異常處理機制來避免異常。在這裡,我們正在迴圈中呼叫 next() 函式,並使用 try-except 塊處理異常:

iterator = iter({'Java', 'JavaFX', 'Coffee Script', 'OpenCV'})
while True:
   try:
      contents = next(iterator)
      print (contents)
   except StopIteration:
      break

輸出

上述程式生成以下輸出:

JavaFX
Java
OpenCV
Coffee Script

示例 4

我們還可以透過為迭代器物件提供“預設值”作為引數來避免異常,如下例所示:

capitals = {"Telangana":"Hyderabad", "Tamilnadu":"Chennai"}
it = iter(capitals)
print (next(it))
print (next(it))
print (next(it, "Delhi"))

輸出

上述程式生成以下輸出:

Telangana
Tamilnadu
Delhi
python_built_in_functions.htm
廣告