1. 程式人生 > >參數匿名函數字典排序、生成式和生成器、裝飾器的作用

參數匿名函數字典排序、生成式和生成器、裝飾器的作用

args turn generator 方式 小括號 一個 中括號 ecb bject

參數匿名函數字典排序

*args就是一個元組
**dict就是字典

技術分享圖片

技術分享圖片

生成式和生成器

[x*x for x in range(0,10)] //列表生成式,這裏是中括號
//結果 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

(x*x for x in range(0,10)) //生成器, 這裏是小括號
//結果 <generator object <genexpr> at 0x7f0b072e6140>

一個直接返回了表達式的結果列表, 而另一個是一個對象,該對象包含了對表達式結果的計算引用, 通過循環可以直接輸出

技術分享圖片

生成式和生成器的區別:
當表達式的結果數量較少的時候, 使用列表生成式還好, 一旦數量級過大, 那麽列表生成式就會占用很大的內存,而生成器並不是立即把結果寫入內存, 而是保存的一種計算方式, 通過不斷的獲取, 可以獲取到相應的位置的值,所以占用的內存僅僅是對計算對象的保存

yield可以輸出多個值 return只能輸出一個值(當函數碰到return就跳出整個函數,不會執行下面的):

技術分享圖片

技術分享圖片

參數匿名函數字典排序、生成式和生成器、裝飾器的作用