迭代器和可迭代物件的關係
迭代器就是可迭代物件
只要遵循迭代器協議生成的資料物件就是可迭代物件
例:列表,本身不遵循迭代協議(假若遵循了,那麼這個列表下直接有乙個list()方法)
通過呼叫__iter__(方法)得到可迭代物件
l = ['die','asd','zxc','ddd']
iter_l=l.__iter__()
print(iter_l)
結果:
該結果為迭代器
三元表示式:
name = 'alex'
res = 't' if name == 'alex' else 'f'
print(res)
列表解析:
#當你想實現這個功能時:
egg_list=
for i in range(10):
print(egg_list)
#他可以有另一種簡單的實現方法:列表解析
l = ['雞蛋%s'%i for i in range(10) ]
print(l)
l = ('雞蛋%s'%i for i in range(10) )
print(l)
print(next(l))
print(next(l))
print(next(l))
注:列表解析,他可以很好用一行**吧上面的 功能實現,但是他有乙個缺點:他生成的是列表,是要存放到記憶體中的,在處理資料較大的時候,占用記憶體太大
總結:1、把列表解析的換成()得到的就是生成器表示式
2、列表解析與生成器表示式都是一種便利的程式設計方式,只不過生成器表示式更節省記憶體
生成器和迭代器
可以直接作用於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...