本文實例講述了Python迭代器與生成器基本用法。分享給大家供大家參考,具體如下:
迭代器
可以進行for循環的數據類型包括以下兩種:
1. 集合數據類型比如list
,tuple
,dict
,str
等
2. 另一種是生成器
而他們都是可迭代對象,稱為Iterable
Isinstandce()
可以用來判斷對象是否為可迭代對象
>>> from collections import Iterable>>> isinstance([], Iterable)True>>> isinstance({}, Iterable)True>>> isinstance('abc', Iterable)True>>> isinstance((x for x in range(10)), Iterable)True>>> isinstance(100, Iterable)False
然后,只有生成器可以稱為迭代器,因為他們是不斷使用next()
函數返回值的,屬于惰性計算,而對于迭代器也有一個判斷函數
>>> from collections import Iterator>>> isinstance((x for x in range(10)), Iterator)True>>> isinstance([], Iterator)False>>> isinstance({}, Iterator)False>>> isinstance('abc', Iterator)False
生成器
生成器:就是未循環完的列表,這是為了節約電腦內存,設立的一種一邊循環一邊計算的機制。
創建的方法也是很簡單,其中一種就是把列表生成式的[]
改成()
就可以了
而調用的時候也一般不用麻煩的next()的方法,而是用for循環來遍歷
比如:
g= (x*x for x in range(10))for n in g: print(n)
這樣就能遍歷出所有的生成器中的元素
另一種生成器的方法:如果函數中包含有yield關鍵字,則這是一個生成器
def odd(): print('step 1') yield 1 print('step 2') yield(3) print('step 3') yield(5)
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答