码迷,mamicode.com
首页 > 其他好文 > 详细

匿名函数

时间:2018-09-16 17:16:56      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:key   close   lis   解决   filter   sorted   lap   执行   alc   

技术分享图片
 1 # 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
 2 
 3 #
 4 def calc(n):
 5     return n ** n
 6 print(calc(10))
 7 
 8 # 换成匿名函数,匿名函数必须要用lambda关键字写
 9 # 左值为函数名,冒号前面的是参数,冒号后面的是返回值,必须一个代码行写完,逻辑执行结束后的结果为返回值
10 calc = lambda n:n**n
11 print(calc(10))
12 
13 
14 # 将字典中,value最大的值找到打印出来
15 dic = {k1 : 10, k2 : 100, k3 : 20}
16 print(max(dic)) # k3
17 print(max(dic, key=lambda k:dic[k]))    # k2
18 print(dic[max(dic, key=lambda k:dic[k])])   # 100
19 
20 
21 # 可以带key关键字参数指定元素被函数操作的内置函数有,带key的都可和匿名函数结合使用
22 # max()
23 # min()
24 # map()
25 # sorted()
26 # filter()
27 
28 
29 
30 
31 # 面试题
32 #1 求输出
33 d = lambda p:p*2
34 t = lambda p:p*3
35 x = 2
36 x = d(x)
37 x = t(x)
38 x = d(x)
39 print(x)    # 24
40 
41 # 2
42 # 现有两个元组,
43 t1 = ((a), (b))
44 t2 = ((c), (d))
45 # 请使用python中匿名函数生成列表 [{‘a‘ : ‘c‘}, {‘b‘ : ‘d‘}]
46 res = map(lambda tup:{tup[0]:tup[1]}, zip(t1, t2))
47 print(list(res))
48 
49 
50 #3 以下代码的输出是什么?请给出答案并解释
51 def multipliers():
52     return [lambda x:i*x for i in range(4)]
53 print([m(2) for m in multipliers()])    # [6, 6, 6, 6]
54 
55 
56 def multipliers():
57     return (lambda x:i*x for i in range(4)) # 改成生成器表达式
58 print([m(2) for m in multipliers()])    # [0, 2, 4, 6]
View Code

 

匿名函数

标签:key   close   lis   解决   filter   sorted   lap   执行   alc   

原文地址:https://www.cnblogs.com/whylinux/p/9656566.html

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