lambda表達式python
這個函數用於一些簡單的邏輯,請看下面這個例子:函數
def func(x): return x ** 2
上面這個函數邏輯很簡單,對於咱們來講,最重要的就是參數和返回值。正好lambda表達式應運而生:code
lambda 參數值:返回值
所以對於第一個函數,能夠改寫成這樣:對象
func = lambda x:x**2 print(func(10))
求兩個數的和:排序
# 定義函數 def sum(a,b): return a+b # lambda表達式 sum=lambda a,b:a+b
sorted函數qt
語法:sorted(iterable,key=None,reverse=False)
這裏面key是一個函數it
def func(item): return len(item) lst = ["歐陽東明", "劉偉", "劉能", "趙四", "王大拿", "趙瑞鑫"] res = sorted(lst, key=func) print(res)
lst = ["歐陽東明", "劉偉", "劉能", "趙四", "王大拿", "趙瑞鑫"] res = sorted(lst, key=lambda item: len(item), reverse=True) print(res)
key能夠先寫正常的函數,再改寫成lambda表達式。io
練習:按照年齡對學生信息排列function
lst = [ {"id": 1, "name": "alex", "age": 18}, {"id": 2, "name": "test", "age": 19}, {"id": 3, "name": "dgf", "age": 17}, ] res = sorted(lst, key=lambda item: item['age']) print(res)
練習:按照學生姓名長度進行排序class
lst = [ {"id": 1, "name": "alex", "age": 18}, {"id": 2, "name": "tesqt", "age": 19}, {"id": 3, "name": "dgf", "age": 17}, ] res = sorted(lst, key=lambda item: len(item['name'])) print(res)
filter篩選
語法:filter(function,iterable) function:用來篩選的函數,在filter中會自動把iterable中的元素傳遞給function。而後根據function返回的True或者False來判斷是否保留此數據。
# 篩選出大於18的數 lst = [11, 15, 18, 85, 45] res = filter(lambda item: item >= 18, lst) for el in res: print(el, end=' ')
map映射
語法:map(funtion,iterable) # 能夠對可迭代對象中的每個元素進行映射,分別執行function。
計算每一個元素的平方:
lst = [11, 15, 18, 85, 45] res = map(lambda x: x ** 2, lst) print(list(res))