国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python lambda函數(shù)及三個常用的高階函數(shù)

2020-02-15 21:23:25
字體:
來源:轉載
供稿:網(wǎng)友

進行編程時,一般我們會給一個函數(shù)或者變量起一個名字,該名稱是用于引用或尋址函數(shù)變量。但是有一個低調的函數(shù),你不需要賦予它名字,因此該函數(shù)也叫匿名函數(shù)。該函數(shù)就是Python中的Lambda函數(shù),下面就來為大家解析python—lambda函數(shù),三個常用的高階函數(shù)。

為什么要使用Python Lambda函數(shù)?

匿名函數(shù)可以在程序中任何需要的地方使用,但是這個函數(shù)只能使用一次,即一次性的。因此Python Lambda函數(shù)也稱為丟棄函數(shù),它可以與其他預定義函數(shù)(如filter(),map()等)一起使用。相對于我們定義的可重復使用的函數(shù)來說,這個函數(shù)更加簡單便捷。

"""lambda 參數(shù)列表 : 返回值lambda 參數(shù)形式:  1.無參數(shù):lambda:100  2.一個參數(shù):lambda a: a  3.默認參數(shù):lambda a, b, c=100: a + b + c  4.可變參數(shù):*args,返回元組  lambda *args: args  5.可變參數(shù):*kwargs,返回字典  lambda **kwargs: kwargslambda 應用:簡化代碼  1.判斷,lambda a, b: a if a > b else b  2.列表數(shù)據(jù)按字典 key 值排序"""# def fn1():#   return 100# def de1():#   r = fn1()#   print(r)#   r2 = lambda: 100#   print(r2)      # 地址:<function main.<locals>.<lambda> at 0x00CCD6E8>#   print(r2())     # 返回值:100# def test2():"""lambda 測試案例"""#   fn1 = lambda a, b: a + b#   print(fn1(1, 2))#   fn2 = lambda *args: args#   print(fn2(1, 2, 3))#   print(fn2(1, 3))#   print(fn2(1))    # (1,)#   fn3 = lambda **kwargs: kwargs#   print(fn3(name='py', age=30))##   fn4 = lambda a, b: a if a > b else b#   print(fn4(100, 200))##   student = [{'name': 'a', 'id': '1', 'tel': 'a1'},#     {'name': 'b', 'id': '2', 'tel': 'b2'},#     {'name': 'c', 'id': '3', 'tel': 'c3'}]#   student.sort(key=lambda x: x['name'])#   print(student)#   student.sort(key=lambda x: x['name'], reverse=True)#   print(student)#   student.sort(key=lambda x: x['id'])#   print(student)"""高階函數(shù):def add_num(a, b, f)內置高階函數(shù):  1.map(func, list):  將func 應用于list中的每一個元素,返回一個迭代器  2.reduce(func, list):  計算結果與下一個數(shù)據(jù)做累積計算,必須有兩個參數(shù)  from functools import reduce  3.filter(func, list):  過濾掉不符合條件的元素,返回一個filter對象,可用list()轉換"""# def add_num(a, b, f):#   # 傳入函數(shù) f#   return f(a) + f(b)# def func(x):#   return x ** 2from functools import reducedef add_2(a, b):  return a + bdef func3(x):  return x % 2 == 0def main():  """  體驗高階函數(shù)  :return:  """  # print(abs(-2))     # 求絕對值  # print(round(0.1))    # 四舍五入  # s1 = add_num(1, 2, abs)  # s2 = add_num(1, 2.5, round)  # print(s1, s2)  list1 = [1, 2, 3, 4, 5]  # map(func, list1)  # print(list(map(func, list1)))  # s = reduce(add_2, list1)  # print(s)  r = filter(func3, list1)  print(r)    # <filter object at 0x00CAE2E0>  print(list(r)) # [2, 4]if __name__ == '__main__':  main()            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广州市| 杭锦后旗| 呼和浩特市| 讷河市| 乌鲁木齐市| 英吉沙县| 喀什市| 资源县| 永福县| 泽州县| 潜江市| 镇安县| 台州市| 织金县| 聊城市| 龙州县| 图木舒克市| 隆子县| 浦城县| 铜陵市| 皮山县| 巴楚县| 阳泉市| 昭觉县| 丹凤县| 于田县| 塘沽区| 营山县| 象山县| 温宿县| 连云港市| 华容县| 东海县| 东宁县| 察雅县| 滨州市| 德清县| 星座| 泉州市| 阳泉市| 郓城县|