python求最小值的函数min()的两种语法结构和实例详解

python求最小值的函数min()

python的内置函数可用于快速地求出python列表list、元素tuple、集合set和字典的最小值,或是字符串string中排位最小的字符,也可以用来比较、选出任意个数字中的最小值,还可以用来比较数个可迭代对象中的最小值,功能可谓是十分强大;python的min()的语法结构有两种形式,如下:

python中iterable可迭代对象的min()函数语法结构

min ( iterable, *iterable, key, default );

  • iterable:第一个位置参数为可迭代的对象,比如列表list、元组tuple、集合set、字典dict等等
  • *iterable:可变的参数,也是可迭代的对象,可以不传入;
  • key:一个可作用于可迭代对象中元素的函数,先执行该函数,然后执行min()比较最小值
  • default:默认值,即可迭代的对象为空时,min()的返回值;

min()可迭代对象实例代码

>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> min(a)
0
>>> b = [3,1,2]
>>> min(a,b)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> c =[-1,0,1,2,3] 
>>> min(a,b,c) #当传入第二个可变参数*iterable时,比较的是多个可迭代对象的第一个元素大小
[-1, 0, 1, 2, 3]
>>> d=[]
>>> min(d,2) #当default关键字参数没有显示地传入(因为前面还有一个位置参数key),将引发错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'list'
>>> min(d,default=2)
2
>>> min(c, key=lambda k:k*k) #传入key参数,会将c列表中的各个元素作为参数传入key函数,然后比较的是返回的结果
0
>>> e = 'abc'
>>> f = 'ABC'
>>> min(e,f) #当传入的可迭代对象为字符串的时候,比较的是字符串的首字母排序大小
'ABC'
>>> min(e)
'a'
>>> g='aBc'
>>> min(e,g)
'aBc'

python一般对象的min()函数

通过上面可迭代对象的min()函数的语法结构的理解之后,那么理解下面的这个参数为非迭代对象(说是非迭代对象也不是很准确,因为字符串也是可迭代的对象,字符串在上下的两个min()函数中都可用)的min()函数的语法结构就变得容易一些:

min ( arg1, arg2, *arg3, key );

  • arg1,arg2:可以是数字或字符或字符串;
  • *arg3:可变的参数,使得min()函数的比较不仅仅只限制于两个参数的比较,可以是任意多个;
  • key:和上面的一样;

一般对象的min()函数实例代码

>>> min(1,2)
1
>>> min(1,2,0,3,-1)
-1
>>> min(1,2,0,3,-1,key=lambda k:k*k)
0
>>> min('a','A')
'A'
>>> min('a','Abcde')
'Abcde'
>>> min('a','Z')
'Z'
>>> min('a','b')
'a'
>>> min('A','C')
'A'

代码解析

一般对象的min()函数比上面的可迭代对象的min()函数的用法看起来要简洁许多,注意字符和字符串之间的比较,字符和字符串的大小排序是[a~z]和[A~Z]按顺序排列,越往后越大,然后小写的又比大写的大。



全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.