日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 内建函数 max/min的高级用法

發布時間:2025/1/21 python 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 内建函数 max/min的高级用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

max/min 函數

Python 中的 max/min函數是用來獲取傳入參數的最大值或最小值的,其運行機制都一樣,所以這里主要描述 max 的運行機制以及使用方法。

最簡單的用法,就是直接傳入兩個要對比的元素,可以返回其兩個元素中的最大值。因為使用很簡單,這里不做過多介紹。

那么重點說一下這兩個內建函數的比較高級的用法, 就是直接傳入序列,會返回序列中的最大/最小值。
函數原型:max(iterable, key, default)
這是求迭代器的最大值,其中iterable 為迭代器,max會for i in … 遍歷一遍這個迭代器,然后將迭代器的每一個返回值當做參數傳給key=func 中的func(一般用lambda表達式定義) ,然后將func的執行結果傳給key,然后以key為標準進行大小的判斷。
注意,這里的重點是key,key 可以由一個lambda函數來表示,并通過 key 的不同, 最終計算出來的值也會不同。
如果覺得以上描述還是比較難懂,那么可以這樣理解:key是一個關鍵字,它告訴 max 應該通過什么因素去進行計算。

OK,話不多說,直接來看示例

示例

這里通過幾個簡單的示例代碼來進行說明:

v1 = {'name':'xiaoming','age':18} v2 = {'name':'zro','age':10} v3 = {'name':'april','age':30}b = [v1,v2,v3] print(max(b,key = lambda x:x['name']))print(max(b,key = lambda x:x['age']))

輸出結果:

{'name': 'zro', 'age': 10} {'name': 'april', 'age': 30}

解析:
第一句 print(max(b,key = lambda x:x[‘name’])),這里的 max 傳入的 key 是一個lambda語句,這句話的意思就是 要將字典中的‘name’作為對比的元素,然后會遍歷整個迭代器,并將 ‘name’元素取出來進行對比,所以最終輸出結果為:

{'name': 'zro', 'age': 10}

因為三種字典中,’zro’才是最大的(通過對比字符串,從左至由對其 ASCII 碼進行比較)。
而第二句print(max(b,key = lambda x:x[‘age’])),原理和上面一樣,這是去字典中的‘age’來進行對比,所以最終輸出的結果就很明了了。


如果說上面的示例還是難理解,那么再來看一個相對簡單的示例:

a = [1,2,3,3,4,5,6,1,2,7,2,9,1,2] print(max(a,key = lambda x:a.count(x)))

輸出結果為:2
解析:這里 a 是一個列表,max 函數指定的 key 是使用a 列表的 count()函數,count()函數是用于統計列表中某個元素的個數,那么這里的 max 計算出來的結果就是通過整理 a 列表中所有元素里面出現的個數最多的元素,所以輸出為2。
另外,上面的寫法可以更簡單一些:

print(max(a,key = a.count))

其輸出結果是一樣的。

經過上面的說明,應該理解起來就比較容易了。那么下面的語句就會很容易看懂了。

x=[23,14323,462,3323,761] #將元素轉換成字符串后進行對比 print(max(x,key = str)) #返回轉換成字符串后最長的值 print(max(x,key = lambda item:len(str(item))))def myFun(item):return str(item) #使用自定義函數指定排序規則 print(max(x,key = myFun))value = ((8,9,10),(8,10,9),(8,9,11)) print(max(value)) #只比較下標為0和2的兩個元素 print(max(value,key = lambda item:(item[0],item[2])))

輸出:

761 14323 761 (8, 10, 9) (8, 9, 11)

參考文章:https://www.cnblogs.com/rendawei/p/7057010.html
https://blog.csdn.net/oh5W6HinUg43JvRhhB/article/details/78869541

總結

以上是生活随笔為你收集整理的Python 内建函数 max/min的高级用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。