您好,登錄后才能下訂單哦!
'''
1 匿名函數(shù):就是沒有名字的函數(shù)
2 為何要用:
用于僅僅臨時(shí)使用一次的場(chǎng)景,沒有重復(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ù)會(huì)“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)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。