匿名函数与内置函数(python3入门)

 1 #匿名函数:没有名字的函数,只有函数的内存地址,只能用一次就被回收
 2 # lambda x,y:x>y #当表达式执行完毕后,自动return值
 3 # 更多情况下,匿名函数都是和其他函数配合到一起使用
 4 
 5 
 6 from functools import reduce
 7 
 8 salaries = {
 9     'egon':3000,
10     'alex':100000,
11     'wuxx':2000,
12     'yuanhao':40000
13 }
14 
15 # print(max(salaries,key=lambda x:salaries[x]))   #max函数比较的是key中的表达式,而在比较出最大值后,return了字典的key
16 # print(min(salaries,key=lambda y:salaries[y]))
17 
18 # print(sorted(salaries,key=lambda x:salaries[x]))    #类似max函数,比较的是字典的value,返回了一个从小到大的人名
19 # print(sorted(salaries,key=lambda x:salaries[x],reverse=True))    #类似max函数,比较的是字典的value,返回了一个从大到小的人名
20 
21 
22 # filter()
23 
24 
25 
26 
27 
28 
29 # map()   #映射,按照某种映射规则产生新的值
30 # names = ['alex','wxx','egon']
31 # res = map(lambda x:'%s_sb'%x,names)
32 # print(res,type(res))    #map返回一个迭代器对象
33 # print(list(res))    #可以通过list来调出迭代器对象中的值
34 # print(['%s_sb'%name for name in names]) #使用列表生成器打印新列表的内容
35 # print('%s_sb'%name for name in names)   #使用列表生成器同样可以实现上述需求
36 
37 # reduce()    #合并字符串/数字相加
38 # res = reduce(lambda x,y:x+y,range(1,101))   #1~100数字两两相加
39 # print(res)
40 
41 #filter
42 
43 # names = ['alex_sb','wxx_sb','egon','old_sb']
44 # res = filter(lambda x:x.endswith('sb'),names)
45 # print(res)
46 # print(list(res))    #遍历names列表,过滤出以sb结尾的元素,组成一个新列表
47 # 
48 # print([name for name in names if name.endswith('sb')])  #列表生成式也可以搞定

 

posted @ 2018-11-26 23:07  名叫蛐蛐的喵  阅读(148)  评论(0编辑  收藏  举报