1 >>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')] 2 3 >>> pairs.sort(key=lambda pair: pair[1]) 4 5 >>> pairs 6 7 [(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
python文檔中看了lambda+sort的這個語法,表示很疑惑,
於是查資料了解到:
這個表示用list中第二個參數即'one'作為排序的依據。
sort()函數用法:函數sort()會默認地按升序排列,能否讓sort()函數按我們想要的排列方式進行排列呢?
sort()函數原型: list.sort(key=None, reverse=False);sort中有兩個參數;
(1) key參數 :
key接受的是一個只有一個形參的函數,形式如下
list = ['a','bbb','cc']
1 def compare(a): 2 return len(a)
3 list.sort(key=compare)
4 print(list) #輸出['a','cc','bbb']
key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序
(2) reverse參數 :
reverse接受的是一個bool類型的值 (Ture or False),表示是否顛倒排列順序,一般默認的是False,注意第一個字母是大寫的
# ###################### 普通函數 ###################### # 定義函數(普通方式) def func(arg): return arg + 1 # 執行函數 result = func(123) # ###################### lambda ###################### # 定義函數(lambda表達式) my_lambda = lambda arg : arg + 1 # 執行函數 result = my_lambda(123)
