Python max函數中key的用法及原理解析
一、背景
起源於一個問題:怎樣找到字符串中出現次數最多的字符
其實使用max函數就能很輕松的解決這個問題:
代碼:
str1 = "AAAaaa8888899sssss" print(max(str1, key=str1.count))
結果:8
二、原理
max()函數用於獲得給定的可迭代對象中的最大值。
key是max()函數的一個參數,它輔助max函數找到最大元素。當max() 函數中有 key 參數時,求的是 value 的最大值,當沒有 key 參數時,求的是 key 的最大值。
key可以對要比較的對象進行一些處理,以達到對對象進行特定規則的比較。
要在比較之前修改對象,或基於特定的屬性/索引進行比較,必須使用key參數。
三、用法
獲取字典中key的最大值
dict1 = {'a': '11', 'c': '22', 'b': '33'} print(max(dict1)) print(max(dict1.keys()))
獲取字典中最大value對應的key值
dict1 = {'a': '11', 'c': '22', 'b': '33'} print(max(dict1, key=dict1.get)) print(max(dict1, key=lambda x: dict1[x]))
獲取字典中最大value的值
dict1 = {'a': '11', 'c': '22', 'b': '33'} print(max(dict1.values()))
獲取句子中的最長單詞
str3 = "Life is short , I use python" print(str3.split()) print(max(str3.split(), key=len))
獲取list中的最大值
list1 = ['11', 'zzz', '22', 'eee'] print(max(list1))
獲取list中的最大數值
list2 = ['11', '3', '222', '67'] print(max(list2, key=lambda x: int(x)))
獲取list中的絕對值最大的值
list3 = ['11', '-399', '222', '67'] print(max(list2, key=lambda x: abs(int(x))))
獲取元組list中指定索引的最大值
list4 = [(1, 'a'), (3, 'c'), (4, 'e'), (-1, 'z')] print(max(list4, key=lambda x: x[1]))
四、實例
str1 = "AAAaaa888ww8899sssss" print(max(str1, key=str1.count)) print('--------------------------') print(max(str1)) print('--------------------------') list1 = ['11', 'zzz', '22', 'eee'] print(max(list1)) print('--------------------------') list2 = ['11', '-399', '222', '67'] print(max(list2, key=lambda x: int(x))) print('--------------------------') list3 = ['11', '-399', '222', '67'] print(max(list2, key=lambda x: abs(int(x)))) print('--------------------------') # list3 = [{'age': 20}, {'age': 23}] # print(max(list3)) # print('--------------------------') list4 = [(1, 'a'), (3, 'c'), (4, 'e'), (-1, 'z')] print(max(list4, key=lambda x: x[1])) print('--------------------------') dict1 = {'a': '11', 'c': '22', 'b': '33'} print(max(dict1, key=dict1.get)) print(max(dict1, key=lambda x: dict1[x])) dict1 = {'a': '11', 'c': '22', 'b': '33'} print(max(dict1)) print(max(dict1.keys())) dict1 = {'a': '11', 'c': '22', 'b': '33'} print(max(dict1.values())) print('--------------------------') str3 = "Life is short , I use python" print(str3.split()) print(max(str3.split(), key=len)) print(max(str3.split())) print('--------------------------')
運行結果:
以上就是Python max函數中key的用法的詳細內容,更多關於Python max函數key用法的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python進階從青銅到王者一定會用上的Python技巧
- 如何利用python實現詞頻統計功能
- python3中dict.keys().sort()用不瞭的解決方法
- Python數據容器dict(字典)的實現
- Python基礎之數據結構詳解