Python max函數(shù)中key的用法及原理解析
起源于一個問題:怎樣找到字符串中出現(xiàn)次數(shù)最多的字符
其實使用max函數(shù)就能很輕松的解決這個問題:
代碼:
str1 = 'AAAaaa8888899sssss'print(max(str1, key=str1.count))
結(jié)果:8
二、原理max()函數(shù)用于獲得給定的可迭代對象中的最大值。
key是max()函數(shù)的一個參數(shù),它輔助max函數(shù)找到最大元素。當(dāng)max() 函數(shù)中有 key 參數(shù)時,求的是 value 的最大值,當(dāng)沒有 key 參數(shù)時,求的是 key 的最大值。
key可以對要比較的對象進(jìn)行一些處理,以達(dá)到對對象進(jìn)行特定規(guī)則的比較。
要在比較之前修改對象,或基于特定的屬性/索引進(jìn)行比較,必須使用key參數(shù)。
三、用法獲取字典中key的最大值
dict1 = {’a’: ’11’, ’c’: ’22’, ’b’: ’33’}print(max(dict1))print(max(dict1.keys()))
獲取字典中最大value對應(yīng)的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中的最大數(shù)值
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(’--------------------------’)
運行結(jié)果:
以上就是Python max函數(shù)中key的用法的詳細(xì)內(nèi)容,更多關(guān)于Python max函數(shù)key用法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. XML入門的常見問題(三)2. HTTP協(xié)議常用的請求頭和響應(yīng)頭響應(yīng)詳解說明(學(xué)習(xí))3. ASP將數(shù)字轉(zhuǎn)中文數(shù)字(大寫金額)的函數(shù)4. XML在語音合成中的應(yīng)用5. .NET Framework各版本(.NET2.0 3.0 3.5 4.0)區(qū)別6. jscript與vbscript 操作XML元素屬性的代碼7. 不要在HTML中濫用div8. php使用正則驗證密碼字段的復(fù)雜強度原理詳細(xì)講解 原創(chuàng)9. ASP基礎(chǔ)入門第四篇(腳本變量、函數(shù)、過程和條件語句)10. HTML5實戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)
