5、python 列表生成式,生成器,內置函數,匿名函數

1、列表生成式

如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎麼做?方法一是循環:

列表生成式則可以用一行語句代替循環生成上面的list:[x * x for x in range(1, 11)]

2、生成器

通過列表生成式,我們可以直接創建一個列表。但是,受到內存限制,列表容量肯定是有限的。如果需要創建一個很大容量的列表卻只需要訪問開始的幾個,那麼就會造成空間的浪費。如果列表元素可以按照某種算法推算出來,那我們是否可以在循環的過程中不斷推算出後續的元素呢?這樣就不必創建完整的list,從而節省大量的空間。在Python中,這種一邊循環一邊計算的機制,稱爲生成器:generator。

第一種方法很簡單,只要把一個列表生成式的[]改成(),就創建了一個generator:

創建Lg的區別僅在於最外層的[]()L是一個list,而g是一個generator。怎麼打印出generator的每一個元素呢?需要通過next()函數獲得generator的下一個返回值,不斷的訪問nest()函數,直到計算到最後一個元素,沒有更多的元素時,拋出StopIteration的錯誤。所以正確的方法是使用for循環,因爲generator也是可迭代對象,並且不需要關心StopIteration的錯誤。

3、內置函數

判斷裏面:非零即真,非空即真

4、匿名函數

關鍵字lambda表示匿名函數,冒號前面的x表示函數參數。

匿名函數有個限制,就是隻能有一個表達式,不用寫return,返回值就是該表達式的結果。

用匿名函數有個好處,因爲函數沒有名字,不必擔心函數名衝突

匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量,再利用變量來調用該函數:

也可以把匿名函數作爲返回值返回

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章