首页 > 开发 > Python > 正文

Python中使用max()函数求一组数据的最大值

2023-04-25 12:32:05
字体:
来源:转载
供稿:网友

在Python中可以使用max()函数求一组数据的最大值。

一、max()函数语法格式

max()函数的语法格式与min()函数相同,其基本语法格式如下:

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

参数的含义如下:

  • iterable 要在该参数所指定的对象中找出最大值,该参数应是一个可迭代的对象,如列表,元组等。
  • key 用于指定参数的单行排序函数;
  • default 当传递的iterable是一个空对象时的默认值。

如果传递的是多个数值作为参数,其语法形式如下:

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

  • arg1, arg2,...是一组数值传递给函数,让其找出最大值;
  • key 用于指定排序函数。

Python中max()函数的使用

二、参数为可迭代对象的使用举例

下面这段程序演示了列表和元组数据的使用情形:

#求列表中的最大值
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解释器将会把该参数理解为该参数应该是一个可迭代的对象,否则就会出错。

四、key参数的使用

当对象的元素仍为集合对象时,可以使用该参数给出排序方法。

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
最大字符: 爱
本文(完)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表