迭代器和生成器

2022-06-12 20:39:12 字數 587 閱讀 7572

#迭代器

#可迭代協議 ------ 含有iter方法的都是可迭代的

#迭代器協議:含有next和iter的都是迭代器

#特點:

#節省記憶體空間

#方便逐個取值,乙個迭代器只能取一次

#生成器

#生成器函式:

#含有yield關鍵字的函式都是生成器函式

#生成器的特點:

#呼叫之後函式內的**不執行,返回生成器

#每次從生成器中取值都會執行一段**,遇到yield停止

#生成器取值的方式:

#for : 如果沒有break就一直取值,直到取完為止

#next :每次只取乙個

#send :不能用在第乙個,取下乙個值得時候給上乙個位置傳乙個新的值 (用send之前,前面必須要有next取過一次值,然後才能使用send取值)

#資料的強制型別轉換 :會一次性把所取到的值全部傳到記憶體裡(佔記憶體,不建議使用)

#生成器表示式

# (條件成立想放在生成器中的值 for i in 可迭代的  if條件)

所有的生成器都是迭代器

生成器和迭代器

可以直接作用於for迴圈的物件稱為可迭代物件 iterable.可以用isinstance 判斷乙個物件是否是iterable物件。isinstance iterable true isinstance iterable true isinstance 235,iterable false 而生成器...

迭代器和生成器

1 迭代器的概念 print dir 告訴我列表的所有用法 有雙下劃線的所有方法叫做雙下方法,是c語言已經寫好的方法。你可以用不止一種方法呼叫它。列表的用法變集合 set dir 求交集 set dir set dir set dir 求列表,字典,字串它們的用法的交集 他們共同的用法 iterab...

生成器和迭代器

1.iterator 迭代器 舉例 我們對list使用for for i in 1,2,3,4 print i 12 34對string物件使用for for ch in python print ch py thon對字典物件使用for for k in print k yx對檔案使用for fo...