Python内置函数min(iterable, *[, key, default])

时间:2021-03-31 22:53:43

说明:
min(iterable, *[, key, default])

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

  1. 函数功能为取传入的多个参数中的最小值,或者传入的可迭代对象元素中的最小值。默认数值型参数,取值小者;字符型参数,取字母表排序靠前者。还可以传入命名参数key,其为一个函数,用来指定取最小值的方法。default命名参数用来指定最小值不存在时返回的默认值。功能与max函数相反。

  2. .函数至少传入两个参数,但是有只传入一个参数的例外,此时参数必须为可迭代对象,返回的是可迭代对象中的最小元素。

>>> min(1,2)
1
>>> min('1234')
'1'
>>> min(1) # 传入1个参数报错
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>

3 . 当传入参数为数据类型不一致时,传入的所有参数将进行隐式数据类型转换后再比较,如果不能进行隐式数据类型转换,则会报错。

>>> min(1,1.1,1.3e1) # 整数与浮点数可取最小值
1
>>> min([1,2],[1,3]) # 列表与列表可取最小值
[1, 2]
>>> min(1,2,'3') # 数值与字符串不能取最小值
1
>>>

4 .当存在多个相同的最小值时,返回的是最先出现的那个最小值。

>>> a = [1,2]
>>> b = [1,3]
>>> c = [1,2]
>>> id(a)
104523272L
>>> id(b)
104523528L
>>> id(c)
104522888L
>>> d = min(a,b,c)
>>> id(d)
104523272L
>>>

5 . 默认数值型参数,取值小者;字符型参数,取字母表排序靠前者;序列型参数,则依次按索引位置的值进行比较取最小者。还可以通过传入命名参数key,指定取最小值方法。

>>> min(1,2) # 取数值小者
1
>>> min('a','b') # 取排序靠前者
'a'
>>> min('ab','aa','ad') # 依次按索引比较取较小者
'aa'
>>> min(-1,-2) # 数值默认去数值较小者
-2
>>> min(-1,-2,key = abs)
-1
>>> min([1,2],(1,1),key = lambda x:x[1])#返回序列的相应位置比较的结果
(1, 1)
>>> min([1,2],(2,1),key = lambda x:x[0])
[1, 2]
>>> min([3,2],(2,1),key = lambda x:x[0])
(2, 1)
>>>

7.当只传入的一个可迭代对象时,而且可迭代对象为空,则必须指定命名参数default,用来指定最小值不存在时,函数返回的默认值。

>>> from numpy import *
>>> l=[1,2,3,5]
>>> l=array(l)
>>> l.min(0)
1
>>> min((),0) # 默认返回0,既没有最小值
0

数组比较大小时

l=array([[1,9,3,5],[6,7,1,9]])

l.min(0) # 参数0的意思是返回每列的最小值,而不是当前行的最小值
Out[7]: array([1, 7, 1, 5])

l.max(0) # 返回每列的最大值
Out[8]: array([6, 9, 3, 9])

机器学习中经常用到

参考:

http://www.cnblogs.com/sesshoumaru/p/6035587.html