在Python中可以使用max()函數求一組數據的最大值。
max()函數的語法格式與min()函數相同,其基本語法格式如下:
max( iterable, *[,key, default])
參數的含義如下:
如果傳遞的是多個數值作為參數,其語法形式如下:
max(arg1, arg2, *args[,key])
下面這段程序演示了列表和元組數據的使用情形:
#求列表中的最大值
list1 = [12,45,67,23,10,3]
max1 = max(list1)
print("最大值是:", max1)
list2 = []
max2 = max(list2, default = None)
print("最大值是:", max2)
#求元組中的最大值
t = (12,54,32,98,33)
max3 = max(t)
print("最大值是:", max3)
輸出結果:
最大值是: 67
最大值是: None
最大值是: 98
在傳遞的參數為列表時,這里特意安排了一個空列表的情況,我們指定在列表為空時,返回的默認值為None。如果不指定default參數,則會給出如下的錯誤信息:
ValueError: max() arg is an empty sequence
我們也可以直接給max傳遞不少于2個值的參數,讓其找出最大值。
#傳遞多個值作為參數
max4 = max(12, 9, 87, 23, 65)
print("最大值是:", max4)
輸出結果為:
最大值是: 87
在使用此種參數時要確保參數值不少于2個,否則將會給出下面的錯誤:
TypeError: 'int' object is not iterable
即參數類型錯誤,在給定一個參數時,Python解釋器將會把該參數理解為該參數應該是一個可迭代的對象,否則就會出錯。
當對象的元素仍為集合對象時,可以使用該參數給出排序方法。
list3 = [[32,10,68],[45,8,99],[36,29,79]]
def func(alist):
return alist[1]
max5 = max(list3, key = func)
print("列表中的最大值為:", max5)
max6 = max(list3)
print("列表中的最大值為:", max6)
輸出結果為:
列表中的最大值為: [36, 29, 79]
列表中的最大值為: [45, 8, 99]
該程序中第一個max函數調用的含義是,把列表list3中每個子列表中第2個元素為最大值的列表找出來。因為在list3中第2個元素值最大的是位于[36, 29, 79]這個列表中的29,所以最后輸出結果為:[36, 29, 79]。
而第二個調用默認是比較每個子列表中的第一個元素。
當使用key參數時,所給的每個參數值也應是可迭代的對象。
max函數不僅可以用于數值型的可迭代對象,也可以運用于其它類型的可迭代對象,如列表、元組、字符串。在上面的例子中已經證明了可迭代對象的元素為列表的情形,默認是比較的每個子列表中第一個元素值的大小。元組也是如此。
對于字符串是比較第一個字符的Unicode值。下面給出一個字符串的例子。
maxstr1= max("I Love China!")
print("最大字符:", maxstr1)
maxstr2 = max("我愛中國")
#使用ord找出每個字符的Unicode碼
print("我:",ord("我"))
print("愛:",ord("愛"))
print("中:",ord("中"))
print("國:",ord("國"))
print("最大字符:", maxstr2)
輸出結果如下:
最大字符: v
本文(完)
我: 25105
愛: 29233
中: 20013
國: 22269
最大字符: 愛
|
新聞熱點
疑難解答