在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
最大字符: 爱
新闻热点
疑难解答