python迭代器和生成器

2021-10-19 13:46:55 字數 996 閱讀 6188

'''

迭代器遵守迭代器協議,必須擁有__iter__()和__next__()

'''

# 迭代器的好處就是節省記憶體,提高執行效率

# 生成器函式yield,python裡面使用了yield的函式叫做生成器

# 每次遇到yield時候,函式會暫停並儲存當前所有的執行資訊,返回yield的值,並在下一次執行next()方法時,從當前位置繼續執行

# 採用yield關鍵字建立生成器函式

def produce():

for i in range(1,200):

yield '猴子 '.format(i)

p = produce()

for i in range(5):

print(p.__next__())

執行結果:

猴子 1

猴子 2

猴子 3

猴子 4

猴子 5

# 列表推導式

x = ['小白龍'.format(i) for i in range(1,7)]

print(x)

# 生成器表示式,可以乙個乙個取資料,節省記憶體,要乙個取乙個,

y = ('小白龍'.format(i) for i in range(1,7))

print(y)

for i in range(1,7):

# print(y.__next__())

print(next(y))#本質和上面一樣都是呼叫生成器的方法__next__()

執行結果:

['小白龍1', '小白龍2', '小白龍3', '小白龍4', '小白龍5', '小白龍6']

at 0x0000026637b5d448>

小白龍1

小白龍2

小白龍3

小白龍4

小白龍5

小白龍6

Python迭代器和生成器

先說迭代器,對於string list dict tuple等這類容器物件,使用for迴圈遍歷是很方便的。在後台for語句對容器物件呼叫iter 函式,iter 是python的內建函式。iter 會返回乙個定義了next 方法的迭代器物件,它在容器中逐個訪問容器內元素,next 也是python的...

Python迭代器和生成器

迭代器是訪問集合元素的一種方法 是可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問 他有兩個基本的方法,iter 和next 字串,列表或遠足物件都可以用於建立迭代器 list1 1,2,3,4 it1 iter list1 建立迭代器物件 print next ...

python 迭代器和生成器

迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退,不過這也沒什麼,因為人們很少在迭代途中往後退。另外,迭代器的一大優點是不要求事先準備好整個迭代過程中所有的元素。迭代器僅僅在迭代到某個元素時才計算該元素,而在這之前或之後,元素可...