[课后作业] 第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的倍数吗?

list(filter(lambda x : not( x % 3), range(1 , 101)))

4.还记得列表推导式吗?完全可以使用列表推导式代替filter()和lambda组合,你可以做到吗?

x % 3 for x in range(1,101) 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表达式)

mapped=map(lambda x,y : [x,y] , [1,3,5,7,9] , [2,4,6,8,10])
list(mapped)
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

6.请目测一下表达式会打印什么?

答:

16
FishCFishC

def make_repeat(n):
    return lambda s:s*n

double = make_repeat(2)
print(double(8))
print(double('FishC'))

16
FishCFishC


 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值