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

 

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