Python min()
时间:2020-02-23 14:43:01 来源:igfitidea点击:
Python min()函数返回可迭代的最小项或者两个或者多个参数中的最小项。
Python min()
Python min()函数语法为:
min(iterable, *[, key, default]) min(arg1, arg2, *args[, key])
如果只有一个参数,则它应该是可迭代的,例如字符串,列表,元组等。
返回可迭代的最小项。如果提供了两个或者多个参数,则将返回最小的参数。
我们可以指定
key
参数来识别最小的项目。
这是一个可选参数,通常在参数是自定义对象时使用。default参数指定一个对象,如果提供的iterable为空,则返回该对象。
如果iterable为空且未提供默认值,则会引发" ValueError"异常。如果找到多个最小元素,则返回第一个。
Python min()函数示例
我们来看一些python min()函数的示例。
min()与字符串
当min()函数与字符串参数一起使用时,将返回具有最小unicode值的字符。
s = 'abcC' print(min(s)) for c in s: print(c, 'unicode value =', ord(c))
输出:
C a unicode value = 97 b unicode value = 98 c unicode value = 99 C unicode value = 67
我正在使用ord()函数来打印字符串中字符的unicode代码点。
min()与元组
tuple_numbers = (1, 2, 3, 4) print(min(tuple_numbers))
输出:1
列表的最小值
list_numbers = [1, 2, 3, -4] print(min(list_numbers))
输出:-4
min()个对象
当我们想对自定义对象使用min()函数时,我们必须提供" key"函数参数用于比较对象。
class Data: id = 0 def __init__(self, i): self.id = i def __str__(self): return 'Data[%s]' % self.id def get_data_id(data): return data.id # min() with objects and key argument list_objects = [Data(1), Data(2), Data(-10)] print(min(list_objects, key=get_data_id))
输出:Data [-10]
如果我们不提供键函数作为参数,则会出现以下错误。
TypeError: '<' 不支持 between instances of 'Data' and 'Data'
min()具有可迭代的空值和默认值
print(min([], default=20))
输出:20
min()函数具有多个参数
print(min(1, 2, 3, 4))
输出:1
带参数和键函数的min()
def str_length(s): return len(s) print(min('a', 'abc', 'b', key=str_length))
输出:a
注意," a"和" b"都是最小的参数,因此第一个" a"由min()函数返回。
min()具有多个可迭代项
x1 = [10, 20, 30] x2 = [5, 15, 40, 25] print(min(x1, x2, key=len))
输出:[10,20,30]
如果我们不提供key函数作为参数,则输出将为[5,15,40,25]
。
这是因为将在可迭代元素的元素之间进行一次比较。
当找到一个值较小的元素时,将返回该元素的可迭代对象。
min()具有多个对象的可迭代对象
x1 = [Data(10), Data(20), Data(30)] x2 = [Data(5), Data(15), Data(40), Data(25)] min_list = min(x1, x2, key=len) for x in min_list: print(x)
输出:
Data[10] Data[20] Data[30]
请注意,对于多个参数,iterables被视为对象。如果我们不指定键函数,我们将得到错误消息“TypeError:”