python3學習之lambda+sort


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)
 
        

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM