Python基礎-42-匿名函數lambda

匿名函數 lambda

lambda是一個匿名函數,在定義函數的時候,不想給函數起一個名字時可以使用匿名函數,用一個變量保存結果即可。通常這個

匿名函數是不會被重複使用的

語法:lambda 參數:表達式

    注:不能有循環和return

 

demo1定義一個匿名函數

# 定義一個匿名函數實現加法計算
sum_res = lambda x,y:x+y

# 調用函數,傳入參數x=10,y=20
print("結果顯示:",sum_res(10,20))  # 結果顯示: 30

demo2匿名函數有默認參數

# 定義一個含有默認值的匿名函數實現加法計算
sum_res = lambda x,y=100:x+y

# 調用函數,傳入參數x=10,y不傳默認爲100
print("結果顯示:",sum_res(10))  # 結果顯示: 110、

demo3匿名函數有元組參數組

# 定義一個匿名函數實現返回不定數的字符串返回
str_res = lambda *args:args
# 調用函數,傳入參數
print("結果顯示:",str_res("suner"))  # 返回的是元組('suner',)
print("結果顯示:",str_res("suner","wang")) # 返回的是元組('suner', 'wang')

demo4匿名函數有字典參數組

# 定義一個匿名函數實現不定數的字典返回
info_res = lambda **kwargs:kwargs
# 調用函數,傳入不定數參數
print("結果顯示:",info_res(name="suner"))  # 返回的是字典:{'name': 'suner'}
print("結果顯示:",info_res(name="suner",age=18)) # 返回的是字典:{'name': 'suner', 'age': 18}

demo5匿名函數作爲參數傳入

# lambda函數作爲參數傳入

def sum_func(x,y,func):
    res = func(x,y)
    return res

# 調用函數
print(sum_func(50,30,lambda x,y:x+y))

demo6匿名函數結合map() 


# 判斷傳入的字符串列表是否全部爲大寫
res = map(lambda str_:str_.isupper(),["suner","wjk","WJK","SUN"])
print(list(res))  # 需要list轉成列表顯示結果:[False, False, True, True]

 demo6匿名函數結合reduce()

from functools import reduce

res = reduce(lambda x,y:x+y,[10,20,30,40,50])
print(res)  # 結果顯示:150

 demo6匿名函數結合filter()

# 判斷傳入的字符串列表是否全部爲大寫,返回正確的結果
res = filter(lambda str_:str_.isupper(),["suner","wjk","WJK","SUN"])
print(list(res))  # 需要list轉成列表顯示結果:['WJK', 'SUN']

 

demo7匿名函數結合sorted()

# 對一個字典列表按年齡升序排列
info_list = [{"name":"suner","age":18},{"name":"suner1","age":20},{"name":"suner2","age":17}]
info_list.sort(key=lambda x:x["age"])
print(info_list)  # [{'name': 'suner2', 'age': 17}, {'name': 'suner', 'age': 18}, {'name': 'suner1', 'age': 20}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章