例:
????add? = lambda x,y : x+y
????add(1,2)? ? ?#結(jié)果為3
? ? sums = lambda *args:sum(args)
? ? sums(1,3,5,6,.....)? ? #輸入任意個(gè)數(shù)參數(shù),返回他們的和(必須是能求和類型)
? ? true = lambda **kargs:1
? ? true({'stu110':"tengxun",
????????????'stu112':"baidu",
????????????'stu113':"alibaba"? })? ? #輸入任意鍵值對(duì)(字典形式)參數(shù)铭腕,輸出為1
應(yīng)用:? ?
? ? 1.函數(shù)式編程:
? ? ? ? #將List中元素按絕對(duì)值大小排列
? ??????list1=[3,5,-4,-1,0,-2,-6]
? ? ? ? sorted(list1, key=lambda x:abs(x))
? ? ? ? #否則要用for循環(huán)遍歷List中元素征椒,不夠pythonic
????????filter函數(shù)。此時(shí)lambda函數(shù)用于指定過(guò)濾列表元素的條件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定將列表[1,2,3]中能夠被3整除的元素過(guò)濾出來(lái)弯洗,其結(jié)果是[3]耳标。
????????map函數(shù)。此時(shí)lambda函數(shù)用于指定對(duì)列表中每一個(gè)元素的共同操作胜嗓。例如map(lambda x: x+1, [1, 2,3])將列表[1, 2, 3]中的元素分別加1高职,其結(jié)果[2, 3, 4]。
????????reduce函數(shù)辞州。此時(shí)lambda函數(shù)用于指定列表中兩兩相鄰元素的結(jié)合條件怔锌。例如reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])將列表?[1, 2, 3, 4, 5, 6, 7, 8, 9]中的元素從左往右兩兩以逗號(hào)分隔的字符的形式依次結(jié)合起來(lái),其結(jié)果是'1, 2, 3, 4, 5, 6, 7, 8, 9'变过。
參考:lambda詳解