7月24:函数和匿名函数(lambda)的补充

'''--->函数与lambda表达式(匿名函数)的区别
def 方法名(参数):
    函数体
f = lambda 参数: 要执行的逻辑
f是对象引用的名称,不是函数的名称(lambda无函数名称)
逻辑体里若是输出用print,若是需要返回值不需写return
f = lambda name:print('hello',name)
f('bob')#调用lambda   或(lambda name:print('hello',name)('bob')

dict.get('name','无此键值')#取键值,没有时返回'无此键值'
dict.get('name')#没有此键值时不会报错,相当于返回None
dict.get('name')(name)#没有此键值时会报错,因为相当于None(name)
'''
print('--------------可变参数和自定义参数-----------------------')
def fun(*args):#*args接收元组
    result = sum(args)/len(args)#注意参数形式--不带*
    print(result)
tu = (1,5,9)
fun(*tu)#解包
fun(4,7,3,1,5)

def fun1(**kwargs):#接受多个参数,字典形式
    print(kwargs)
d1 = {'name':'Lucy','age':13}
d2 = dict(name='Lucy',age=13)
fun1(**d1)#解包
fun1(name='Jon',age=23)

print('-------------字典里写函数的引用---------------------')
def eat(food):
    print('eat:',food)
def sleep(time):
    print('go to bed:',time)
def play(game):
    print('play:',game)
opreation = {
    'e':eat,
    's':sleep,
    'p':play,
    'w':lambda profession:print('work:',profession)
             }
while True:
    activity = input('请选择:\n e=>吃\n s=>睡\n p=>玩\n w=>工作')
    name = input('请输入参数,如果退出请输入stop:')
    if name == 'stop':
        break
    else:
        opreation.get(activity)(name)
print('-----------------推导-----------------------')
l = list(range(1,10))
result = []
def add(num):
    return num+2
#1.循环
for i in l:
    result.append(i+3)
#2.推到
result21 = [m+3 for m in l]
result22 = [n for n in l if n % 2 == 0]
#3.map()
result31 = list(map(add,l))#注意此时是:函数的引用
result32 = list(map((lambda n:n**2),l))#注意此时lambda需要用()括起来
#4.filter()
def even(x):
    return x % 2 == 0
result41 = list(filter(even,l))#转换成列表
result42 = filter(even,l)
for i in result42:#遍历输出
    print(i,end=' ')
    print()
result43 = list(filter((lambda n:n % 3 == 0),l))
print(result43)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值