Python3之max key參數學習記錄
阿新 • • 發佈:2018-11-02
ons 方法 最大值 一個 lan sta 每一個 www. fan
今天用Python寫腳本,想要實現這樣的功能:對於給定的字典,返回其中Value最大值對應的Key。
搜索後找到了解決方法,同時也學到了max key參數的作用。
例1,
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111] print(max(testlist, key=abs)) #返回 -20.3
獲取testlist中絕對值最大的元素。
key關鍵字的作用是,對每個testlist元素先使用key指定的function來處理,然後再比較、返回預期的元素。
key參數的值也可以使用自定義函數。
例2,
def func(n): return abs(n)
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111] print(max(testlist, key=func)) #結果與例1一致
該func是自定義的函數。
對於簡單的方法,一般使用lambda函數。
例3,
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111] print(max(testlist, key=lambda x: abs(x))) #結果與例1、例2一致
使用lambda函數作為key的參數。
例4,
probabilities_dict = {‘Sunny‘: 0.30, ‘Cloudy‘: 0.35, ‘Windy‘: 0.15, ‘Rainy‘: 0.20} print(max(probabilities_dict, key=lambda x: probabilities_dict[x])) #返回 Cloudy print(max(probabilities_dict, key=probabilities_dict.get)) #返回 Cloudy
這裏,對於probabilities_dict字典的每一個元素(即字典的Key),使用key參數指定的方法進行處理,然後再比較、返回預期的字典Key。
下面的這句依次打印字典的Key、dict.get(Key)的值:
for key in probabilities_dict: print(key, probabilities_dict.get(key), sep=‘: ‘, end=‘, ‘) #返回 Sunny: 0.3, Cloudy: 0.35, Windy: 0.15, Rainy: 0.2,
巨人的肩膀:
https://www.cnblogs.com/whatisfantasy/p/6273913.html
https://stackoverflow.com/questions/18296755/python-max-function-using-key-and-lambda-expression
Python3之max key參數學習記錄