程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

python匿名函数 lambda 的用法

发布于2019-10-11 15:06     阅读(1255)     评论(0)     点赞(23)     收藏(2)


匿名函数


匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

Python使用lambda关键字创造匿名函数。

所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。

#这段代码
def calc(n):
    return n**n
print(calc(10))
 
#换成匿名函数
calc = lambda n:n**n
print(calc(10))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

img

上面是我们对calc这个匿名函数的分析,下面给出了一个关于匿名函数格式的说明

函数名 = lambda 参数 :返回值

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型
  • 1
  • 2
  • 3
  • 4
  • 5

我们可以看出,匿名函数并不是真的不能有名字。

匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了~~~

# 请把以下函数变成匿名函数
def add(x,y):
    return x+y

add = lambda x,y:x+y

print(add(2,3))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

上面是匿名函数的函数用法。除此之外,匿名函数也不是浪得虚名

在和其他功能函数(max ,min,sorted,filter,map)合作的时候,它真的可以匿名。

l=[3,2,100,999,213,1111,31121,333]
print(max(l))  # 31121

dic={'k1':10,'k2':100,'k3':30}

def func(key):
    return dic[key]
print(max(dic,key= func))  # k2

print(max(dic)) # k3
print(max(dic,key=lambda k:dic[k]))  # k2  取出字典中最大value对应的key
print(dic[max(dic,key=lambda k:dic[k])])  # 100
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i)

# 输出
1
25
49
16
64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
res = filter(lambda x:x>10,[5,8,11,9,15])
for i in res:
    print(i)

# 输出
11
15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
# 现有两元组(('a'),('b')),(('c'),('d')),
# 请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

t1 = (('a'),('b'))
t2 = (('c'),('d'))


r = zip(t1,t2)
ret = list(map(lambda tup:{tup[0]:tup[1]},r))

print(ret)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12


所属网站分类: 技术文章 > 博客

作者:23dh

链接:https://www.pythonheidong.com/blog/article/134413/37a74bdde2bb683f3a61/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)