python分別用迭代器與生成器實現range功能

2021-10-07 12:21:56 字數 1236 閱讀 6496

本博文源於python基礎,旨在實現分別用迭代器與生成器實現range功能,range功能用初始值start,步長step,stop是終止,其中終止是必須要的引數,其餘預設引數放上去。

確定好init初始化接受各個引數,step,start和stop。然後iter返回物件本身,next進行迭代,加上步長

每次跟stop值進行比較不斷生成即可

def

myyield

(stop, start=

0, step=1)

:while start + step < stop+step:

yield start

start += step

if __name__ ==

'__main__'

:for i in myyield(start=-2

,stop=

12,step=3)

:print

(i)

class

myrange

(object):

def__init__

(self, stop, start=

0, step=1)

: self.start = start

self.stop = stop

self.step = step

print

(start)

def__iter__

(self)

: self.cur_val = self.start

return self

def__next__

(self)

: self.cur_val += self.step

if self.cur_val < self.stop:

return self.cur_val

else

:raise stopiteration

for i in myrange(start=-2

, stop=

13, step=2)

:print

(i)

Python生成器與迭代器

生成器只有在用的時候會出現在記憶體中,對比列表全部存在記憶體中,減少了記憶體占用 next 函式 依次取生成器的值 s x 2 for x in range 1000 中括號是列表解析,小括號表示生成一系列值,就是生成器 s at 0x7fa20aa8b048 print next s 用next ...

python 迭代器與生成器

迭代器和生成器 print 1 in 1,2,3 print 1 not in 1,2,3 print 4 in print 4 not in 1,2,3 print x not in dlkjfxfei 可迭代物件 iterable 可以被next 函式呼叫並不斷返回下乙個值 知道沒有資料時丟擲s...

Python 迭代器與生成器

一 迭代器 理解迭代器需要搞清楚容器 container 迭代器協議 可迭代物件 iterable 迭代器 iterator 生成器 generator 1 容器 container 容器是一種把多個元素組織在一起的資料結構,容器中的元素可以逐個地迭代獲取,可以用in,not in關鍵字判斷元素是否...