首頁 > 後端開發 > Python教學 > 如何在 Python 中建立和使用迭代器?

如何在 Python 中建立和使用迭代器?

Mary-Kate Olsen
發布: 2024-12-29 17:33:11
原創
227 人瀏覽過

How Do I Create and Use Iterators in Python?

在Python 中建立迭代器

在Python 中建立迭代器需要實現迭代器協議,該協議指定了兩個基本方法: __iter__() 和__下一個__()。這些方法定義了物件如何初始化和迭代一系列值。

理解迭代器協定

在 __iter__() 中,傳回迭代器對象,即通常在循環開始時隱式呼叫。 __next__() 是傳回序列中下一個值的主要方法。對於 Python 2 用戶,此方法稱為 next()。當所有值都用完時, __next__() 會引發 StopIteration 異常,該異常會循環建構 capture 來終止迭代。

範例:計數器迭代器

讓我們建立一個簡單的產生指定範圍內的值的計數器迭代器:

class Counter:
    def __init__(self, low, high):
        self.current = low - 1
        self.high = high

    def __iter__(self):
        return self

    def __next__(self): # Python 2: def next(self)
        self.current += 1
        if self.current < self.high:
            return self.current
        raise StopIteration

# Usage:
for c in Counter(3, 9):
    print(c)
登入後複製

這將產生以下結果輸出:

3
4
5
6
7
8
登入後複製

將生成器用於迭代器

生成器提供了另一個創建迭代器的機制。生成器函數一次產生一個值,有效地實作了迭代器協定。

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1

# Usage:
for c in counter(3, 9):
    print(c)
登入後複製

上面的程式碼產生與 Counter 類別相同的輸出。

其他資源

要全面了解迭代器,請參閱 David Mertz 的文章「迭代器和簡單」等資源發電機。 ”

以上是如何在 Python 中建立和使用迭代器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板