国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Python > 正文

Python中使用min()函數求最小值

2023-04-25 12:32:05
字體:
來源:轉載
供稿:網友

Python中min()函數的作用是求一組數據中的最小者,如一組數字的最小值。

一、min()函數的語法格式

Python中min()函數的語法格式與max()函數語法格式相同。一般語法格式如下:

min( iterable, *[,key, default])

參數的含義如下:

  • iterable 要在該參數所指定的對象中找出最小值,該參數應是一個可迭代的對象,如列表,元組,字符串等。
  • key 用于指定排序函數,該函數應只有一行;
  • default 當傳遞的iterable是一個空對象時的默認值。

如果直接將多個數值直接作為參數,其語法格式如下:

min(arg1, arg2, *args[,key])

  • arg1, arg2,...是一組數值,作為一組參數傳遞給函數,讓其找出最小值;
  • key 用于指定排序函數。

在了解了min()函數的基本語法格式后,下面舉例來說明該函數的具體使用方法。

Python min函數

二、可迭代對象作為參數傳遞給min函數

下面這段程序演示了列表、元組作為參數傳遞給min函數的情形。

#求列表中的最小值
list1 = [13,46,67,3,90,52]
min1 = min(list1)
print("最小值是:", min1)
list2 = []
min2 = min(list2, default = None)
print("最小值是:", min2)

#求元組中的最小值
t = (12,54,32,98,33)
min3 = min(t)
print("最小值是:", min3)

輸出結果:

最小值是: 3
最小值是: None
最小值是: 12

上面給出了三個例子用于求給定迭代對象中的最小值,其中求min1是一般的調用情況,這時要求迭代對象list1不能為空。求min2時給出了default參數,即迭代對象為空時,給出的最小值為None,如未設置default參數,迭代對象為空時將會給出以下錯誤:

ValueError: min() arg is an empty sequence

min3是迭代對象為元組時的情形。

三、參數直接給出多個值

我們在使用min()函數時也可以直接給出不少于2個值的參數,直接求出其最小者:

#傳遞多個值作為參數
min4 = min(12, 9, 87, 23, 65)
print("最小值是:", min4)

其輸出結果如下:

最小值是: 9

在使用這種形式時要確保給出的參數值不少于兩個值,否則會給出如下錯誤:

TypeError: 'int' object is not iterable即參數類型錯誤,在給定一個參數時,Python解釋器將會把該種調用理解為第一種形式:即傳遞可迭代對象,否則就會出錯。

四、key參數的使用

有時傳遞的可迭代對象的元素值仍為一個集合序列值時,Python解釋器無法按照常規方法求最小值,這時需要我們指定排序的算法。

list3 = [[32,10,68],[45,8,99],[36,29,79]]

def func(alist):
    return alist[1]

min5 = min(list3, key = func)
print("列表中的最小值為:", min5)
min6 = min(list3)
print("列表中的最小值為:", min6)

 其輸出結果如下:

列表中的最小值為: [45, 8, 99]
列表中的最小值為: [32, 10, 68]

 上面兩個例子中,求min5時指定了key參數,key參數所指定的函數是要求按照列表中第2個元素值的大小進行排序。由于三個子列表中第2個元素的最小值是第2個子列表,所以輸出結果為:[45, 8, 99]。

實際上,在這種情況下,即使沒有給定key參數,默認是按照子列表中的第1個進行排序,min6演示了這種情況。

當指定key參數時,迭代對象中的每個元素也應該是可迭代對象。

五、其它類型的數據舉例

min函數不僅可以用于數值型的可迭代對象,也可以運用于其它類型的可迭代對象,如列表、元組、字符串。在上面的例子中已經證明了可迭代對象的元素為列表的情形,默認是比較的每個子列表中第一個元素值的大小。元組也是如此。

對于字符串是比較第一個字符的Unicode值。下面給出一個字符串的例子。

minstr1= min("I Love China!")
print("最小字符:", minstr1)
minstr2 = min("我愛中國")
#使用ord找出每個字符的Unicode碼
print("我:",ord("我"))
print("愛:",ord("愛"))
print("中:",ord("中"))
print("國:",ord("國"))
print("最小字符:", minstr2)

 輸出結果如下:

最小字符: ' '
我: 25105
愛: 29233
中: 20013
國: 22269
最小字符: 中
上面第1個例子中,空格是最小字符。

本文(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 工布江达县| 郁南县| 赤水市| 荆州市| 蒙城县| 多伦县| 峨眉山市| 广饶县| 棋牌| 孙吴县| 文安县| 渝中区| 英超| 青海省| 大荔县| 桐梓县| 邓州市| 孝感市| 南昌市| 基隆市| 潞西市| 永修县| 孝义市| 湘乡市| 霸州市| 环江| 揭西县| 错那县| 盐池县| 廊坊市| 寻甸| 苏尼特右旗| 水富县| 石林| 恩平市| 桐城市| 吉木乃县| 温宿县| 内乡县| 石阡县| 银川市|