'''
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、平原網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為平原等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
1 匿名函數(shù):就是沒有名字的函數(shù)
2 為何要用:
用于僅僅臨時(shí)使用一次的場景,沒有重復(fù)使用的需求
'''
def sum2(x,y):
return x+y
# print(lambda x,y:x+y)
# print((lambda x,y:x+y)(1,2))
# 匿名函數(shù)的精髓就是沒有名字,為其綁定名字是沒有意義的
# f=lambda x,y:x+y
# print(f)
# print(f(1,2))
# 匿名函數(shù)與內(nèi)置函數(shù)結(jié)合使用
# max,min,sorted,map,filter,reduce
salaries={
'egon':300000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
# 求薪資最高的那個(gè)人名:即比較的是value,但取結(jié)果是key
# res=max(salaries)
# print(res)
# 可以通過max函數(shù)的key參數(shù)來改變max函數(shù)的比較依據(jù),運(yùn)行原理:
# max函數(shù)會“for循環(huán)”出一個(gè)值,然后將該值傳給key指定的函數(shù)
# 調(diào)用key指定的函數(shù),將拿到的返回值當(dāng)作比較依據(jù)
# def func(name):
# # 返回一個(gè)人的薪資
# return salaries[name]
#
# res=max(salaries,key=func) #'egon'
# print(res)
# 求最大值
# res=max(salaries,key=lambda name:salaries[name]) #'egon'
# print(res)
# 求最小值
# res=min(salaries,key=lambda name:salaries[name]) #'egon'
# print(res)
# sorted排序
# nums=[11,33,22,9,31]
# res=sorted(nums,reverse=True)
# print(nums)
# print(res)
# salaries={
# 'egon':300000,
# 'alex':100000000,
# 'wupeiqi':10000,
# 'yuanhao':2000
# }
# for v in salaries.values():
# print(v)
# res=sorted(salaries.values())
# print(res)
# res=sorted(salaries,key=lambda name:salaries[name],reverse=True)
# print(res)
max,min,sorted(字典,key=func)
max,min.sorted for循環(huán)出字典的key,將key當(dāng)做func的參數(shù)
map,reduce,filter(匿名函數(shù),列表)
# map:把一個(gè)列表按照我們自定義的映射規(guī)則映射成一個(gè)新的列表
# names=['alex','lxx','wxx','yxx']
# res=map(lambda name: name + "dSB", names)
# print(list(res))
# filter: 從一個(gè)列表中過濾出符合我們過濾規(guī)則的值
# 運(yùn)行原理:相當(dāng)于for循環(huán)取出每一個(gè)人名,然后傳給匿名函數(shù),將調(diào)用匿名函數(shù)返回值為True的那個(gè)人名給留下來
# names=['alex_sb','lxx_sb','wxx_sb','egon','yxx']
# res=filter(lambda name:name.endswith('sb'),names)
# print(list(res))
# print([name for name in names if name.endswith('sb')])
# reduce: 把多個(gè)值合并成一個(gè)結(jié)果
from functools import reduce
l=['a','b','c','d']
# res=reduce(lambda x,y:x+y,l,'A')
#'A','a' => 'Aa'
#'Aa','b'=>'Aab'
#'Aab','c'=>'Aabc'
#'Aabc','d'=>'Aabcd'
# print(res)
# res=reduce(lambda x,y:x+y,l)
#'a','b'=>'ab'
# print(res)
# res=reduce(lambda x,y:x+y,range(1,101))
#1,2=>3
#3,3=>6
# print(res)