首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库Python

Python中使用min()函数求最小值

减小字体 增大字体 作者:本站  来源:本站整理  发布时间:2021-05-13 00:38:26

Python中min()函数的作用是求一组数据中的最小者,如一组数字的最小值。

一、min()函数的语法格式

Python中min()函数的语法格式与max()函数语法格式相同。一般语法格式如下:

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

参数的含义如下:

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

如果直接将多个数值直接作为参数,其语法格式如下:

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

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

在了解了min()函数的基本语法格式后,下面举例来说明该函数的具体使用方法。

Python min函数

二、可迭代对象作为参数传递给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解释器将会把该种调用理解为第一种形式:即传递可迭代对象,否则就会出错。

四、key参数的使用

有时传递的可迭代对象的元素值仍为一个集合序列值时,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)

 输出结果如下:

最小字符: ' '
我: 25105
爱: 29233
中: 20013
国: 22269
最小字符: 中
上面第1个例子中,空格是最小字符。

本文(完)

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.