max()

作者: import_hello | 来源:发表于2018-12-18 16:50 被阅读0次

转载须注明出处:简书@Orca_J35 | GitHub@orca-j35,所有笔记均托管于 python_notes 仓库

🔨 max(iterable, *[, key, default])

🔨 max(arg1, arg2, *args[, key])

如果只提供一个位置实参,则必须是一个可迭代(iterable)对象,max() 将返回 iterable 中最大的一项。如果向 max() 传递一个非可迭代对象,则会抛出 TypeError 异常

max([2,4,6,8]) #> 8
# 字符按照Unicode码点值进行比较
max('orca_j35') #> 'r'
# 大小与各项的长度无关
max(['ab','ac','d']) #> 'd'

max(1024) #> TypeError: 'int' object is not iterable

如果提供两个以上的位置实参max() 将返回这些位置实参中最大的一项。

max(1,3,5) #> 5
max('ab','ac','d') #> 'd'

max() 中可选关键字实参的功能如下:

  • key 用于指定一个单参数排序函数,使用方法与 list.sort() 类似。详见笔记:

    • 『sorted.md』
    • 『序列类型(list, tuple, range).md』-> list.sort()
    max(1,2,'3',key = int) #> '3'
    
  • default 用于指定一个对象,当 iterable 为空时,便会返回该对象。如果 iterable 为空,但并未提供 default 参数,则会抛出 ValueError 异常。

    max((),default="empty") #> 'empty'
    max(list()) #> ValueError: max() arg is an empty sequence
    

如果存在多个最大项,max() 将返回第一个出现的最大项。该结果与其它稳定性排序工具一致,例如 sorted(iterable,key=keyfunc, reverse=True)[0]heapq.nlargest(1, iterable, key=keyfunc)

cards = [(7,"黑桃"), (8,"红桃"), (2,"红桃"), (8,"黑桃")]
sorted(cards,key=lambda t:t[0],reverse=True)[0]
#> (8, '红桃')
max(cards,key=lambda t:t[0])
#> (8, '红桃')

关于稳定性排序,详见笔记『sorted.md』-> 稳定性

New in version 3.4: The default keyword-only argument.

相关文章

网友评论

      本文标题:max()

      本文链接:https://www.haomeiwen.com/subject/lkmlkqtx.html