1.什么是匿名函数?
def定义的是有名函数 :特点是可以通过名字重复调用
def func(): #func = 函数的内存地址
pass
匿名函数就是没有名字的函数
2.为何要匿名函数
匿名函数的定义就是相当于只产生一个变量的值,而没有绑定任何名字,所以会在定义完后就会被回收,无法重复使用,只能在定义是使用一次
应用:当某一个功能仅使用一次就没有再重复使用的必要了,就应该定义为匿名函数
3.如何使用匿名函数
lambda x,y:x+y #求x+y 的功能
print(lambda x,y:x+y )
res =(lambda x,y:x+y)(1,2)
print(res)
#输出结果为 3
匿名函数的应用*************************************************************************************************
def sum2(x,y):
return x+y
salaries={
'egon':3000, 'alex':100000000, 'wupeiqi':10000, 'yuanhao':2000 }
def func(k):
return salaries[k]
print(max(salaries,key=func))
key=值:作用是控制max函数的比较的值
#1.将可迭代对象salaries变成迭代器对象比较的值
#2.next(iter_obj)得到一个人名,然后将该人名当作参数传给key制定的函数
# 然后调用函数将函数的返回值当作比较的依据
# 3.比较大小,取出最大值对应的人名
print(max(salaries,key=lambda k:salaries[k]))
dic = {'frank':12333,'egon':2505,'alex':1100000}
res= max(dic,key=lambda x:dic[x])
print(res)
sorted
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。
以下实例展示了 sorted 的最简单的使用方法:
你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。
另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable。
利用key进行倒序排序
要进行反向排序,也通过传入第三个参数 reverse=True: