python Lambda函数

《Python3 程序开发指南》

Lambda函数,是一个匿名函数,创建语法:

 lambda parameters:express

parameters:可选,如果提供,通常是逗号分隔的变量表达式形式,即位置参数。

expression:不能包含分支或循环(但允许条件表达式),也不能包含return(或yield)函数。如果为元组,则应用圆括号将其包含起来。

调用lambda函数,返回的结果是对表达式计算产生的结果

1
2
3
4
5
6
根据参数是否为 1  决定s为yes还是no
>>> s  =  lambda  x: "yes"  if  x = = 1  else  "no"
>>> s( 0 )
'no'
>>> s( 1 )
'yes'

  上面例子中,将if...else语句缩减为单一的条件表达式,语法为:

               expression1 if A else expression2

如果A为True,条件表达式的结果为expression1,否则为expression2 

 以下举例说明lambda函数的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
使用 sorted ()方法和 list .sort()方法进行排序
elements = [( 2 , 12 , "A" ),( 1 , 11 , "N" ),( 1 , 3 , "L" ),( 2 , 4 , "B" )]
>>>  sorted (elements)
[( 1 3 'L' ), ( 1 11 'N' ), ( 2 4 'B' ), ( 2 12 'A' )]
 
根据elements每个元组后两项进行排序,e表示列表中每个三元组元素
在表达式是元组,且 lambda 为一个函数的参数时, lambda 表达式的圆括号是必需的
>>> elements.sort(key = lambda  e:(e[ 1 ],e[ 2 ]))
>>> elements
[( 1 3 'L' ), ( 2 4 'B' ), ( 1 11 'N' ), ( 2 12 'A' )]
 
分片方式得到同样的效果
>>> elements.sort(key = lambda  e:e[ 1 : 3 ])
>>> elements
[( 1 3 'L' ), ( 2 4 'B' ), ( 1 11 'N' ), ( 2 12 'A' )]
 
>>> elements.sort(key = lambda  e:(e[ 2 ].lower(),e[ 1 ]))
以下两种方法等价,都可以通过调用area( 5 , 3 ),结果相同
>>> area = lambda  b,h: 0.5 * b * h
>>>  def  area(b,h):
     return  0.5 * b * h
 
默认字典使用,存取不不在的键时,创建一个新项,键为这个不存在的键,值为 lambda 函数的值
>>>  import  collections
>>> one_dict  =  collections.defaultdict( lambda : - 1 )
>>> two_dict  =  collections.defaultdict( lambda :( 0 , 0 ))
>>> three_dict  =  collections.defaultdict( lambda : "No message avaliable" )

转载:https://www.cnblogs.com/xiao--yao/p/5024542.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值