min()

作者: import_hello | 来源:发表于2018-12-17 23:06 被阅读0次

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

网友评论

      本文标题:min()

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