迭代器:以list為例
>>> help(list.__iter__)
__iter__(self, /)
implement iter(self).
內部乙個資料結構裡面,如果還有下乙個,把下乙個拿給你,直到沒有下乙個了,迭代器的內部會執行next方法
>>> a = [1,2,3,4,5,6,7,8]
>>> iter(a)
>>> for i in iter(a):print (i)12
3456
78生成器:
range不是生成器 xrange是生成器
readlines不是生成器 xreadlines是生成器
>>> range(1000000)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9。。。。。。。。。]
>>> xrange(1000000)
xrange(10000000)
總結:以上面為例:
>>> range(1000000),它會在記憶體裡不停的活動
>>> xrange(1000000),你建立多少都無所謂,我就是在記憶體裡放著,你什麼時候要用的時候我再建立
生成器內部基於yield建立,即:對於生成器只有使用時才建立,從而不避免記憶體浪費
生成器和迭代器
可以直接作用於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...