用代碼說明下
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億條。
這個對內存是由比較大的消耗的。
那如果我們使用,生成器,妳會發現
沒有什麽壓力的,多少都可以給妳。
因為,生成器的原理,就只是 記錄當前數據的位置,
然後妳需要的時候給妳返回下壹條
這個也是為什麽大家都喜歡用 生成器的原因。