Python中max()內置函數使用(list)


在學習完列表和元組的基礎知識后,做到一個題:

求出列表中頻次出現最多的元素。

學習到了python內置函數max的用法 其參數key的用法 匿名函數lamda的用法

 

python內置函數max()

max()方法返回給定參數的最大值,參數值可為序列。

1 print ("max(80, 100, 1000) : ", max(80, 100, 1000))
2 print ("max(-20, 100, 400) : ", max(-20, 100, 400))
3 print ("max(-80, -20, -10) : ", max(-80, -20, -10))
4 print ("max(0, 100, -400) : ", max(0, 100, -400))

輸出為:

1 max(80, 100, 1000) :  1000
2 max(-20, 100, 400) :  400
3 max(-80, -20, -10) :  -10
4 max(0, 100, -400) :  100

key參數

key參數的解釋:

key(optional): key function where each argument is passed, and comparison is performed baased on its return value

簡而言之,就是key中傳遞的是一個參數,此時max會根據每個傳入參數后的返回值進行比較。返回值為key中的參數值

以字典為例:

1 #the key whose value is the largest
2 square = {2: 4, -3: 9, -1: 1, -2: 4}
3 key2 = max(square, key = lamda k: square[k])
4 print("The key with the largest value: ",key2) #-3
5 print("The largest value: ",square[key2])#9

 

 

關於lambda:匿名函數

lambda arguments: expression

 

1 # Python code to illustrate cube of a number  
2 # showing difference between def() and lambda(). 
3 def cube(y): 
4     return y*y*y; 
5   
6 g = lambda x: x*x*x 
7 print(g(7))    #343
8   
9 print(cube(7)) #343
  • 不使用lambda:在這里,都是返回的立方值。但在使用def,我們需要定義一個函數名稱,需要傳遞一個值。執行之后,我們還需要返回結果的函數並使用使用return關鍵字。
  • 使用lambda:lambda定義不包括return,它總是返回包含一個表達式。我們也可以把一個lambda定義一個函數時預計在任何地方,我們不必把它賦值給一個變量。這是lambda函數的簡單性。

 

實現代碼:求列表中頻次出現最多的元素

 1 def mode(lst):
 2     if lst is None or len(lst) == 0:
 3         return None
 4     return max(lst, key = lambda k: lst.count(k))
 5 
 6 #調用mode
 7 lst = [1, 3, 3, 2, 1, 1, 2]
 8 r = mode(lst)
 9 print(r)
10 #output : 1     

 


免責聲明!

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



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