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'))