Python max内置函数
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
Gibt das größte Element in einem iterierbaren Element oder das größte von zwei oder mehr Argumenten zurück.
Wenn ein Positionsargument bereitgestellt wird, sollte es iterierbar sein. Das größte Element im Iterable wird zurückgegeben. Wenn zwei oder mehr Positionsargumente angegeben werden, wird das größte der Positionsargumente zurückgegeben.
Es gibt zwei optionale Nur-Schlüsselwort-Argumente. Das Schlüsselargument gibt eine Sortierfunktion mit einem Argument an, wie sie für list.sort() verwendet wird. Das Standardargument gibt ein Objekt an, das zurückgegeben werden soll, wenn die bereitgestellte Iterable leer ist. Wenn die Iterable leer ist und kein Standardwert angegeben wird, wird ein ValueError ausgelöst.
Wenn mehrere Elemente maximal sind, gibt die Funktion das erste gefundene Element zurück. Dies steht im Einklang mit anderen Tools zur Erhaltung der Sortierstabilität wie sorted(iterable, key=keyfunc, reverse=True)[0] und heapq.nlargest(1, iterable, key=keyfunc).
说明:
1值.默认数值型参数, 取值大者;字符型参数, 取字母表排序靠后者.还可以传入命名参数key,其为一个函数,用来指定取最大值的方法.default命名参数用来指定最大值不存在时返回的默认值.
2象,返回的是可迭代对象中的最大元素.
>>> max(1) # 传入1个参数报错 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> max(1) TypeError: 'int' object is not iterable >>> max(1,2) # 传入2个参数 取2个中较大者 2 >>> max(1,2,3) # 传入3个参数 取3个中较大者 3 >>> max('1234') # 传入1个可迭代对象,取其最大元素值 '4'
>>> max(1,1.1,1.3E1) # 整数与浮点数可取最大值 13.0 >>> max(1,2,3,'3') # 数值与字符串不能取最大值 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> max(1,2,3,'3') TypeError: unorderable types: str() > int() >>> max([1,2],[1,3]) # 列表与列表可取最大值 [1, 3] >>> max([1,2],(1,3)) # 列表与元组不能取最大值 Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> max([1,2],(1,3)) TypeError: unorderable types: tuple() > list()
#定义a、b、c 3个列表 >>> a = [1,2] >>> b = [1,1] >>> c = [1,2] #查看a、b、c 的id >>> id(a) 68128320 >>> id(b) 68128680 >>> id(c) 68128240 #取最大值 >>> d = max(a,b,c) >>> id(d) 68128320 #验证是否最大值是否是a >>> id(a) == id(d) True
>>> max(1,2) # 取数值大者 2 >>> max('a','b') # 取排序靠后者 'b' >>> max('ab','ac','ad') # 依次按索引比较取较大者 'ad' >>> max(-1,0) # 数值默认去数值较大者 0 >>> max(-1,0,key = abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较大者 -1
>>> max(1,2,'3') #数值和字符串不能取最大值 Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> max(1,2,'3') TypeError: unorderable types: str() > int() >>> max(1,2,'3',key = int) # 指定key为转换函数后,可以取最大值 '3' >>> max((1,2),[1,1]) #元组和列表不能取最大值 Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> max((1,2),[1,1]) TypeError: unorderable types: list() > tuple() >>> max((1,2),[1,1],key = lambda x : x[1]) #指定key为返回序列索引1位置的元素后,可以取最大值 (1, 2) 复制代码
>>> max(()) #空可迭代对象不能取最大值 Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> max(()) ValueError: max() arg is an empty sequence >>> max((),default=0) #空可迭代对象,指定default参数为默认值 0 >>> max((),0) #默认值必须使用命名参数进行传参,否则将被认为是一个比较的元素 Traceback (most recent call last): File "<pyshell#27>", line 1, in <module> max((),0) TypeError: unorderable types: int() > tuple()