當前位置:成語大全網 - 新華字典 - Python中叠代器和生成器的區別與聯系

Python中叠代器和生成器的區別與聯系

用代碼說明下

def?miter():

return?list(range(10))

def?myield():

for?i?in?range(10):

yield?i

print(miter())

print(myield())

輸出是

[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]

<generator?object?myield?at?0x000002A0118740F8>

不知道,妳發現什麽東西沒?

叠代器,是直接返回我們要的數據,

那麽假設,我現在要壹億條,是的。叠代器會壹次性給妳1億條。

這個對內存是由比較大的消耗的。

那如果我們使用,生成器,妳會發現

沒有什麽壓力的,多少都可以給妳。

因為,生成器的原理,就只是 記錄當前數據的位置,

然後妳需要的時候給妳返回下壹條

這個也是為什麽大家都喜歡用 生成器的原因。