生成器和迭代器(一)

2021-10-03 07:46:01 字數 950 閱讀 6177

迭代器和可迭代物件的關係

迭代器就是可迭代物件

只要遵循迭代器協議生成的資料物件就是可迭代物件

例:列表,本身不遵循迭代協議(假若遵循了,那麼這個列表下直接有乙個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...