Day14零基礎入門python第021講課後測試題及答案:lambda表達式

0.請使用lambda表達式將下列函數轉變爲匿名函數
   def fun_A(x,y=3):
         return x*y

lambda x,y=3:x*y

1.請將下面的匿名函數變爲普通函數?
   lambda x : x if x% 2 else None

 def fun_odd(x):
         if x%2:
             return x
         else:
             return None

2.感受一下使用匿名函數給你的編程生活帶來的改變?

不需要專門定義一個函數,直接使用匿名函數即可

尤其是只需要調用一兩次的函數,可以簡化代碼的可讀性

3.你可以利用filter()和lambda表達式快速求出100以內所有3的倍數嗎?

4.還記得列表推導式嗎?完全可以使用列表推導式代替filter()和lambda組合,你可以做到嗎?

x%3 for x in range(0,100)if x%3==0

5.還記得zip嗎?使用zip會將兩數以元祖形式綁定在一起,例如:
   >>>list(zip([1,3,5,7,9],[2,4,6,8,10]))
   [(1,2),(3,4),(5,6),(7,8),(9,10)]
但如果希望打包的形式是靈活多變的列表而不是元祖,(希望是[[1,2],[3,4],[5,6],[7,8],[9,10]]這種形式),你能做到嗎?(採用map和lambda表達式)

注意:強大的map()後面可以接受多個序列作爲參數

6.請目測一下表達式會打印什麼?

def make_repeat(n):
    return lambda s:s*n
 
double = make_repeat(2)
print(double(8))
print(double('FishC'))

 

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