Python max函數(shù)中key的用法及原理解析
一、背景
起源于一個(gè)問(wèn)題:怎樣找到字符串中出現(xiàn)次數(shù)最多的字符
其實(shí)使用max函數(shù)就能很輕松的解決這個(gè)問(wèn)題:
代碼:
str1 = "AAAaaa8888899sssss" print(max(str1, key=str1.count))
結(jié)果:8
二、原理
max()函數(shù)用于獲得給定的可迭代對(duì)象中的最大值。
key是max()函數(shù)的一個(gè)參數(shù),它輔助max函數(shù)找到最大元素。當(dāng)max() 函數(shù)中有 key 參數(shù)時(shí),求的是 value 的最大值,當(dāng)沒(méi)有 key 參數(shù)時(shí),求的是 key 的最大值。
key可以對(duì)要比較的對(duì)象進(jìn)行一些處理,以達(dá)到對(duì)對(duì)象進(jìn)行特定規(guī)則的比較。
要在比較之前修改對(duì)象,或基于特定的屬性/索引進(jìn)行比較,必須使用key參數(shù)。
三、用法
獲取字典中key的最大值
dict1 = {'a': '11', 'c': '22', 'b': '33'}
print(max(dict1))
print(max(dict1.keys()))
獲取字典中最大value對(duì)應(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()))
獲取句子中的最長(zhǎng)單詞
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中的絕對(duì)值最大的值
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]))
四、實(shí)例
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('--------------------------')
運(yùn)行結(jié)果:

以上就是Python max函數(shù)中key的用法的詳細(xì)內(nèi)容,更多關(guān)于Python max函數(shù)key用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python機(jī)器學(xué)習(xí)高數(shù)篇之函數(shù)極限與導(dǎo)數(shù)
- python中super()函數(shù)的理解與基本使用
- Python如何使用print()函數(shù)輸出格式化字符串
- python中map()函數(shù)使用方法詳解
- python之多種方式傳遞函數(shù)方法案例講解
- python imread函數(shù)詳解
- 關(guān)于Python OS模塊常用文件/目錄函數(shù)詳解
- python用函數(shù)創(chuàng)造字典的實(shí)例講解
- Python面向?qū)ο笾畠?nèi)置函數(shù)相關(guān)知識(shí)總結(jié)
- Python函數(shù)中的不定長(zhǎng)參數(shù)相關(guān)知識(shí)總結(jié)
- Python 函數(shù)簡(jiǎn)單易理解版
相關(guān)文章
Python不使用庫(kù)進(jìn)行矩陣運(yùn)算詳解
這篇文章主要介紹了Python不使用庫(kù)進(jìn)行矩陣運(yùn)算詳解,矩陣乘法中,需要判斷兩個(gè)矩陣是否可以進(jìn)行相乘,即前一個(gè)矩陣的列是否等于后一個(gè)矩陣的行,,需要的朋友可以參考下2023-08-08
Python使用kombu連接信息中包含#號(hào)問(wèn)題排查方式
文章描述了在部署Python項(xiàng)目到生產(chǎn)環(huán)境時(shí)遇到的一個(gè)錯(cuò)誤,即端口號(hào)無(wú)法正確轉(zhuǎn)換為整數(shù)值,該錯(cuò)誤在測(cè)試環(huán)境和本地調(diào)試中沒(méi)有出現(xiàn),但在生產(chǎn)環(huán)境中才出現(xiàn),通過(guò)分析錯(cuò)誤信息和代碼,作者發(fā)現(xiàn)問(wèn)題出在URL解析過(guò)程中,特別是在處理包含特殊字符(如#號(hào))的URL時(shí)2024-12-12
python數(shù)組排序方法之sort、sorted和argsort詳解
這篇文章主要給大家介紹了關(guān)于python數(shù)組排序方法之sort、sorted和argsort的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03
python調(diào)用kubernetesAPI簡(jiǎn)單使用方法
這篇文章主要介紹了python調(diào)用kubernetesAPI簡(jiǎn)單使用方法,K8s也提供API接口,提供這個(gè)接口的是管理節(jié)點(diǎn)的apiserver組件,下文更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-05-05
利用python實(shí)現(xiàn)flappy bird 游戲(完整代碼)
python 中 pygame模塊能讓我們很方便的編寫(xiě)游戲,16年我用python 仿制了flappy bird 游戲,下面是游戲的完整代碼以及素材,分享給大家2021-11-11
使用Python實(shí)現(xiàn)為PDF文檔設(shè)置背景色或背景圖
PDF作為一種跨平臺(tái)、高保真的文件格式被廣泛應(yīng)用,這篇文章主要為大家詳細(xì)介紹了如何使用Python代碼對(duì)PDF文檔進(jìn)行頁(yè)面背景色或背景圖片的設(shè)置,需要的可以參考下2024-04-04
Python?+?Selenium?實(shí)現(xiàn)模擬登錄jd實(shí)例分享
這篇文章主要介紹了Python?+?Selenium?實(shí)現(xiàn)模擬登錄jd實(shí)例分享的相關(guān)資料,需要的朋友可以參考下2023-06-06

