码迷,mamicode.com
首页 > 编程语言 > 详细

Python— 匿名函数

时间:2017-11-11 18:57:15      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:解释   das   nbsp   ges   调用   类型   lam   结果   cal   

匿名函数

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

#初始代码
def calc(n):
    return n**n
print(calc(10))
 
#换成匿名函数
calc = lambda n:n**n
print(calc(10))

技术分享

上图是对calc这个匿名函数的分析

# 关于匿名函数格式的说明

函数名 = lambda 参数 :返回值相当于函数体

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

由此可见:

匿名函数并不是真的没有名字。

匿名函数的调用和正常的调用也没有什么分别。 

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


# 匿名函数
add = lambda x,y : x+y
匿名函数练习

 

上面是匿名函数的函数用法。

除此之外,匿名函数也不是浪得虚名。在和其他功能函数合作的时候~~~它真的可以匿名

技术分享
l=[3,2,100,999,213,1111,31121,333]
print(max(l))

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


print(max(dic))
print(dic[max(dic,key=lambda k:dic[k])])

# 执行结果:
31121
k3
100

Process finished with exit code 0
匿名函数与 max 混用
技术分享
res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i)

# 执行结果
1
25
49
16
64
匿名函数与 map 混用
技术分享
res = filter(lambda x:x>10,[5,8,11,9,15])
for i in res:
    print(i)



# 执行结果
11
15
匿名函数与 filter 混用
技术分享
‘‘‘
1.下面程序的输出结果是:
d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x)
x = t(x)
x = d(x)
print x
‘‘‘

‘‘‘
2.现有两元组((‘a‘),(‘b‘)),((‘c‘),(‘d‘)),请使用python中匿名函数生成列表[{‘a‘:‘c‘},{‘b‘:‘d‘}]
‘‘‘

‘‘‘
3.以下代码的输出是什么?请给出答案并解释。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
请修改multipliers的定义来产生期望的结果。
‘‘‘
面试题:匿名函数
技术分享
# 第一题 
   24

Process finished with exit code 0



# 第二题
t1 = ((a), (b))
t2 = ((c), (d))
t3 = zip(t1, t2)
print(list(lambda t : {t[0] : t[1]}, t3))


# 第三题
# 答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
# 答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
# 答案三
print([{i:j} for i,j in zip(t1,t2)])
答案——面试题: 匿名函数

 

Python— 匿名函数

标签:解释   das   nbsp   ges   调用   类型   lam   结果   cal   

原文地址:http://www.cnblogs.com/bigtreei/p/7819594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!