Python; lambda; 函数参数; filter

学过编程的童鞋都知道函数是封装好的可执行的代码模块,可减少代码冗余,说起简洁高效的内置函数,我觉得Python太体贴了,话不多说,切入正题吧:

函数参数总结
    1.位置匹配 func(name)

>>> def func(arg1,arg2,arg3):
	return arg1,arg2,arg3
>>> print(func(1,2,3))
(1, 2, 3)


    2.关键字匹配 func(key=value)

>>> def func1(k1='',k2=None,k3=''):
	return k1,k2,k3
>>> print(func1(k3=5,k1=4,k2=3))
(4, 3, 5)


    3.收集匹配
        1.元组收集 func(arg1,arg2)
        2.字典收集 func(key1=value1,key2=value2)

#*params:(搜集参数)参数个数不定,若没有提供可收集的参数,params为一个空元组
>>> def test(*params,exp):
	print("参数的长度:",len(params));
	print("第二个参数:",params[1]);	
>>> test(1,'小虾米',3.14,6,7,8,exp = 9)
参数的长度: 6
第二个参数: 小虾米


>>> def test(**args):#键值对的参数,若没有提供一一对应的的键值参数,args为一个空字典
	print(args)	
>>> test(args1=1,args2=2,args3=3)
{'args1': 1, 'args2': 2, 'args3': 3}


    4.参数顺序

>>> def test(a,d,b=6,*args,**kwargs):
	print('b = %d'%b)
	print('args is',args)
	print('kwargs is',kwargs)	
>>> test(2,3,4,5,6,7,9,[1,2,3,4],{1:2,3:4},par1='a',par2='b',par3='c')
b = 4
args is (5, 6, 7, 9, [1, 2, 3, 4], {1: 2, 3: 4})
kwargs is {'par1': 'a', 'par2': 'b', 'par3': 'c'}

参数位置:1.先是位置匹配的参数;2.关键字匹配的参数;3.收集匹配的元组参数;4.收集匹配的关键字参数

lambda  
                  1.lambda是一个表达式。
                  2.它没有名称,存储的也不是代码块,而是表达式。

>>> def g(x,y):
	return 2 * x + y
>>> g(5,1)
11
>>> d = lambda x,y:2 * x + y#与上面函数功能相同,使用lambda省下定义函数过程
>>> d(5,1)
11
>>> g=lambda *args:sum(args)#一系列参数求和
>>> g(1,2,3,4,5,6,7,8,9,10)
55
>>> d = lambda x:x+1 if x > 0 else "error"
>>> d(3)
4
>>> d(0)
'error'
>>> g = lambda x:[(x,i) for i in range(0,10)]
>>> g(5)
[(5, 0), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (5, 7), (5, 8), (5, 9)]

filter      过滤非True的内容

>>> t = [1,2,3,4,5]
>>> g =list(filter(lambda x:x > 3,t))#将t中大于3的元素找出来
>>> g
[4, 5]

>>> list(filter(None,[1,0,True,False]))#过滤非TRUE内容
[1, True]


## 输出一个包含0到19的所有奇数的列表,或将列表中不能被2整除的元素过滤出来
>>> list(filter(lambda x:x%2,range(20)))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]


#注意map与filter函数区别,将列表的元素执行整除操作
>>> list(map(lambda x:x%2,range(10)))
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]



#sorted()函数并不改变a的值,这里根据元素与8的距离从小到大排序,a.sort()改变a的值返回空值
>>> a = [0,1,2,3,4,5,6,7,8,9,0]
>>> sorted(a,key=lambda x:abs(8-x))
[8, 7, 9, 6, 5, 4, 3, 2, 1, 0, 0]

听说,好看的皮囊千篇一律,有趣的灵魂万里挑一,^_^^_^^_^,仔细想想,美貌与实力我都要,缺一不可啊

哈哈,希望我的例子和注释对大家有所帮助!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值