01
列表生成式的缺點
通過列表生成式,我們可以直接創建一個列表。但是,內存數量有限,列表容量肯定不能超過內存大小。
再有,創建一個包含100萬個元素的列表,不僅佔用很大的存儲空間,如果我們僅僅需要訪問前面10%的元素,那後面絕大多數元素佔用的空間都白白浪費了。
02
解決辦法
如果列表元素中的元素可以按照某種算法推算出來,那是否可以在循環過程中,推算出我們需要的一定數量的元素呢?
這樣地話,我們就可以靈活地創建需要數量的list,從而節省大量的空間。
在Python中,這種一邊循環一邊計算的機制,稱為生成器:generator。
03
創建generator
下面介紹兩種創建generator的方法
第一種方法很簡單,只要把一個列表生成式的 [] 改成 (),就創建了一個generator
g = ( x * x for x in range(10) )
g is a generator object
第二種方法是函數中帶有yield,那麼此函數就不再是函數了,而是一個generator,
def generatorfun():
print('step 1')
yield(10)
print('step 2')
yield 30
python的功能的確很強大,這使得它成為人工智能,AI ,機器學習,深度學習的主要用語言。
閱讀更多 人工智能channel 的文章