Python3 內置函數補充匿名函數

Python3 匿名函數

定義一個函數與變量的定義很是類似,對於有名函數,必須經過變量名訪問ide

def func(x,y,z=1): return x+y+z print(func(1,2,3))

 

匿名函數定義:使用 lambda 來建立匿名函數函數

匿名函數1. 沒有名字 2:函數體自帶returnspa

匿名函數3d

def func(x,y,z=1): return x+y+z

print(lambda x,y,z=1:x+y+z)


function <lambda> at 0x0000000003469488>

匿名函數也是一個函數對象,匿名函數賦值給一個變量,再利用變量來調用該函數

f=lambda x,y,z=1:x+y+z print(f) print(f(1,2,3))

 

 匿名函數的應用場景:應用於一次性的場景,臨時使用code

 

二、匿名函數結合使用內置函數的用法

max,min,sorted,map,reduce,filter的用法對象

字典的運算:最小值,最大值,排序 

 

salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}

print(max(salaries))  #  默認比較key值大小
print(max(salaries.values()))  # 比較values值
print(max(salaries,key=lambda name:salaries[name]))  取values,來比較
print(min(salaries,key=lambda name:salaries[name])) 取values,來比較
print(max(zip(salaries.values(),salaries.keys()))[1])  # 經過zip的方式實現




def get_value(name):
    return salaries[name]
print(max(salaries,key=get_value))
max min

 

names=['alex','wupeiqi','yuanhao','yanglei','egon']
res=map(lambda x:x if x == 'egon' else x+'二狗子',names)
print(res)
print(list(res))

names=['alex','wupeiqi','yuanhao','yanglei','egon']

def my_map(func,seq):

    for item in seq:

        yield func(item)

res1=my_map(lambda x:x+'_二狗',names)

print(next(res1))

print(next(res1))

functools中導入reduce模塊

from functools import reduce
print(reduce(lambda x,y:x+y,range(101),100))
print(reduce(lambda x,y:x+y,range(101)))
map

 

names=['alex_二狗','wupeiqi_二狗','yuanhao_二狗','yanglei_二狗','egon']

print(list(filter(lambda name:name.endswith('二狗'),names)))
filter
相關文章
相關標籤/搜索