在讀取比較大的資料檔案並且對檔案進行大規模的操作(比如節點插值等問題)的時候,往往需要占用大量記憶體,而利用迭代器可以節約記憶體空間,提高效率,所以就準備深入了解一下迭代器的原理。
乙個迭代器物件必須包含兩個操作,乙個是能夠給出迭代物件中當前的元素,乙個是要拿到下乙個元素。這兩者在迭代器物件的構造中對應兩個特殊方法,它們分別是__init__()和__next__方法。示例**如下:
class
number()
:def
__init__
(self, start, end)
: self.start = start
self.end = end
def__iter__
(self)
:return self
def__next__
(self)
: a = self.start
if self.start <= self.end:
self.start +=
1return a**
2else
:raise stopiteration
呼叫上面的number類如下:
for i in number(1,
9):print
(i)
執行結果如下:
149
1625
3649
6481
python的迭代器 Python 迭代器
迭代器 迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可迭代物件 以直接作用於 for 迴圈的資料型別有以下幾種 一類是集合資料型別,如 list tuple dict set str 等...
python的迭代器 python 迭代器
在介紹迭代器之前,先說明下迭代的概念 迭代 通過for迴圈遍歷物件的每乙個元素的過程。python的for語法功能非常強大,可以遍歷任何可迭代的物件。在python中,list tuple string dict set bytes都是可以迭代的資料型別。可以通過collections模組的iter...
python的迭代器 Python 迭代器
概述迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。延遲計算或惰性求值 lazy evaluation 迭代器不要求你事先準備好整個迭代過程中所有的元素。僅僅是在迭代至某個元素時才計算該元素,而在這之前或之後,元素可以不存在或...