天天看點

《Python資料科學指南》——1.10 使用可疊代對象

本節書摘來自異步社群《python資料科學指南》一書中的第1章,第1.10節,作者[印度] gopi subramanian ,方延風 劉丹 譯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

可疊代對象和生成器十分相似,但是有一個重要的差別:我們可以重複地通路一個可疊代對象,即使我們已經通路完了序列中的所有元素,我們還可以從頭重新通路它,這和生成器是完全不同的。

如果不保持任何狀态,它們就是基于對象的生成器。所有帶有iter方法的類,在用來産生資料時,都可以被作為無狀态對象生成器來使用。

我們通過一個簡單的示例來了解可疊代對象。如果了解了之前介紹的生成器和疊代器,你也能很容易地了解這個概念。

我們來建立一個簡單的可疊代對象simpleiterable,用代碼來示範如何使用可疊代對象。

在第1步中,我們建立了一個簡單的類作為我們的可疊代對象。init構造函數有兩個參數,起始和結束,這和我們之前的示例很相似。我們定義了一個iter函數,它将提供我們需要的序列,給定一個數值範圍,傳回這些數的平方值。

接下來,我們采用兩個循環,在第1個循環中,我們疊代通路範圍内的數值,從1到10。當我們進入第2個for循環時,我們會發現程式又疊代通路了那些序列,并且沒有出現任何異常情況。

第1章“python在資料科學中的應用”中1.8節“使用疊代器”的相關内容。

第1章“python在資料科學中的應用”中1.9節“生成一個疊代器和生成器”的相關内容。