python基礎(十一) 迭代器與生成器

2022-08-27 19:33:08 字數 694 閱讀 5588

python中的序列型別都是可迭代的物件,例如列表、元組和字串。可以通過for迴圈來遍歷。

iter()函式可以手動的建立可迭代物件。迭代器一次只能取乙個值,迭代器取值不能回退,只能一直往前取。當迭代器的值取盡的時候會報stopiteration的錯誤。

__iter__和__next__構成了迭代協議,迭代器擁有這兩個魔術方法。

li=[1,2,3,4]

li2=iter(li)

print

(next(li2))

print(li2.__next__

())>>>1

2

生成器就是迭代器,是在函式中加入yield語句來返回乙個值。yield只能在函式中使用,並且會暫停函式執行並返回表示式結果。而且一次只能返回乙個值。

由於生成器可以自己定義並且一次只取乙個的特性多用來處理大資料量的資料,減少記憶體占用,使資料得到處理。同樣多取也會報錯。

def

fun():

print(1)

yield'一

'print(2)

yield'二

'print(3)

yield'三

'f=fun()

print(f.__next__

())print(f.__next__

())>>>1一

2二

(十一)迭代器模式

迭代器模式 演示 迭代器模式 場景 迭代器模式 總結 這種模式用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。沒有找到合適的例子,就以乙個常用的 jquery 為示例吧。jquery eachp jquery eachp jquery eachp src script var arr 1 ...

doraemon的python 迭代器與生成器

6.9.1迭代器的定義 自己不用寫,只需要學會用 迭代器 對可迭代物件中的元素進行逐一獲取,表象 具有 next 方法且每次呼叫都獲取可迭代物件中的元素 從前到後乙個個獲取 迭代器想要獲取每個值,就必須反覆執行 v1 11,22,33,44 列表轉化成迭代器 v2 iter v1 result v2...

Python基礎 迭代器

二 生成器 三 推導表示式 迭代器就是乙個容器,將可迭代物件通過iter包起來 li 1 2,3 4,5 a liter li 迭代器print next a 1print next a 2print next a 3 乙個個取值 1.訪問者不需要去關心內部結構,只需要通過next不斷去取下乙個內容...