」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Python 中檢查生成器是否為空?

如何在 Python 中檢查生成器是否為空?

發佈於2024-11-06
瀏覽:564

How to Check if a Generator is Empty in Python?

偵測空產生器初始化

在Python中,產生器是一次產生一個值的迭代器。因此,從一開始就確定發電機是否為空可能是一個挑戰。與列表或元組不同,生成器沒有固有的長度或 isEmpty 方法。

解決挑戰

為了解決這個問題,常見的方法是使用輔助函數查看生成器中的第一個值而不消耗它。如果 peek 函數傳回 None,則表示生成器沒有專案。

建議實作

一個名為 peek 的函數可以如下實作:

def peek(iterable):
    try:
        first = next(iterable)
    except StopIteration:
        return None
    return first, itertools.chain([first], iterable)

使用Peek 判斷生成器是否為空

要判斷生成器是否為空,可以使用peek按以下方式運行:

res = peek(mysequence)
if res is None:
    # sequence is empty.  Do stuff.
else:
    first, mysequence = res
    # Do something with first, maybe?
    # Then iterate over the sequence:
    for element in mysequence:
        # etc.

在此範例中,如果生成器為空,則 peek 函數將傳回 None 並且 if 條件將為 true。否則,將執行 else 區塊。透過利用這種方法,您可以有效地檢測生成器從一開始就為空。

版本聲明 本文轉載於:1729390097如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3