Python3 min() 函数详解 获取多个参数或列表中的最小值
min()函数的主要作用是获取对象中最小的值,参数可以是任何可迭代对象(字符串、列表、元组、字典等),可以是一个参数内的值进行对比,也可以是多个参数之间进行对比,还可以通过自定义函数进行处理,对比处理后的值。如果传递的是单个空迭代对象,还可以设置default默认值防止其报错。
它是Python的内置函数,在python文件中直接可以使用。
语法
min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])
参数
参数有两种传递方式:
1:传递1个或多个同类型可迭代对象。
在传递1个迭代对象时,则是对比对象内各个值,而在传递多个的时候,则是将多个可迭代对象进行比较。
在传递1个可迭代对象且为字符串的时候,字符串会被拆分成单个字符进行比较,然后按字符编码大小进行排序(包括中文)。
单个字典进行比较的时候,比较的是字典的名称而不是值,返回的也是名称。
多个字典进行对比是不允许的,会报错。也就是说字典的在对比的时候最好使用key参数设置自定义函数进行处理后再对比。
如果传递的是一个空迭代对象,则可以设置default参数防止其报错。
2:传递多个字符串或数字,就是将多个字符串进行对比,以多个字符编码的总和作为对比依据。使用多个字符串进行对比时,只能使用key参数,不可以使用default参数。单组数字不能对比,但多组数字是可以的。
需要注意的是,在传递多个参数进行对比是,类型要完全一致,否则报错。
iterable - 可迭代对象
key - 自定义处理函数,以key的返回结果进行对比
default - 默认值,只有在传递单个空值时有效。
返回值
返回最小的值。
实例
§ 实例1 - 单个参数的对比
#字符串
>>>min('abc')
'a'
#数字
>>>min(1,2,3)
1
#列表
>>>min([1,2,3])
1
#元组
>>>min((1,2,3))
1
§ 实例2 - key参数的应用
key参数多用于参数比较复杂的情况下,或者查找多种排序方式的最小值。
#以多个字典中的number作为对比依据。
>>>def sort(x):
... return x['number']
...
>>>min({'number': 18, 'price': 1.53}, {'number': 20, 'price': 0.53}, key = sort)
{'number': 18, 'price': 1.53}
>>>def sort(x):
... return x['price']
...
>>>m = min({'number': 18, 'price': 1.53}, {'number': 20, 'price': 0.53}, key = sort)
{'number': 20, 'price': 0.53}
§ 实例3 - default参数的应用
#空迭代对象将使用default参数。
>>>min('', default='默认值')
'默认值'
>>>min([], default='默认值')
'默认值'
>>>min((), default='默认值')
'默认值'