元祖推導式返回值就是一個生成器,
生成器本質(zhì)就是一個迭代器
和迭代器的區(qū)別:
迭代器是系統(tǒng)內(nèi)置的, 重寫不了
生成器可以手動改寫迭代邏輯
生成器的創(chuàng)建方式:
1.生成器表達式(元祖推導式)
2.生成器函數(shù)(yield關(guān)鍵字)
生成器表達式
# 生成5以內(nèi)的數(shù)i, 這個數(shù)字左移i位
gen = (i << i for i in range(5))
# 遍歷這個生成器
for i in gen:
print(i)
可以使用list強轉(zhuǎn)成列表
res = list(gen)
print(res)