首页 技术 正文
技术 2022年11月21日
0 收藏 522 点赞 2,389 浏览 1674 个字

1 作用:通常是用来在python中创建匿名函数的

2 格式: lambda 参数[,参数] : 表达式

3 注意:

(1)lambda定义的是单行函数, 如果需要复杂的函数,应该定义普通函数

(2)lambda参数列表可以包含多个参数,例如 lambda x,y : x + y

(3)lambda中的表达式不能含有命令, 而且只限一条表达式

4、lambda函数基础:

lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的。如下:

  """命名的foo函数"""
  def foo():return 'beginman' #Python中单行参数可以和标题写在一行  """lambda关键字创建匿名函数,该表达式同以上函数"""
  lambda:'beginman'

  上面的只是简单的用lambda创建一个函数对象,并没有保存它也没有调用它,时刻会被回收了。这里我们保存并调用:

  bar = lambda:'beginman'
  print bar() #beginman

  从上面几个例子中,可易理解Python lambda语法:

  lambda [arg1[,arg2,arg3....argN]]:expression

  lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。

  print lambda:'beginman'   #<function <lambda> at 0x00B00A30>

无参数:

  如果没有参数,则lambda冒号前面就没有,如以上例子。

有参数:

  def add(x,y):return x+y
  add2 = lambda x,y:x+y
  print add2(1,2) #3
  
  def sum(x,y=10):return x+y
  sum2 = lambda x,y=10:x+y
  print sum2(1) #11
  print sum2(1,100) #101

lambda函数的使用举例说明

根据参数是否为1 决定s为yes还是no
>>> s = lambda x:"yes" if x==1 else "no"
>>> s(0)
'no'
>>> s(1)
'yes' 使用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")
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,953
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,477
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,290
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,107
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,739
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,773