Python中min()函数的作用是求一组数据中的最小者,如一组数字的最小值。
Python中min()函数的语法格式与max()函数语法格式相同。一般语法格式如下:
min( iterable, *[,key, default])
参数的含义如下:
如果直接将多个数值直接作为参数,其语法格式如下:
min(arg1, arg2, *args[,key])
在了解了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解释器将会把该种调用理解为第一种形式:即传递可迭代对象,否则就会出错。
有时传递的可迭代对象的元素值仍为一个集合序列值时,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)
输出结果如下:
最小字符: ' '
上面第1个例子中,空格是最小字符。
我: 25105
爱: 29233
中: 20013
国: 22269
最小字符: 中
本文(完)
新闻热点
疑难解答