知识点1

在 Python 中,min() 和 max() 是两个非常实用的内置函数,分别用于找出可迭代对象中的最小值和最大值。

基本语法

min(iterable, *[, key, default])
min(arg1, arg2, *args, *[, key])
  • iterable:可迭代对象,如列表list、元组tuple、字典dict、集合set等。

  • arg1, arg2, *args:多个参数,直接传入多个值进行比较。

  • key:可选参数,用于指定一个函数,该函数会在比较之前对每个元素进行处理。默认为 None,即直接比较元素本身。

  • default:可选参数,仅当 iterable 为空时返回默认值。如果未指定且 iterable为空,则会抛出 ValueError。

  • 案例1

    min() 函数在处理列表时,会逐个比较元素,找出最小值并返回。在代码中,列表 num中的最小值是1,因此输出结果为1。

    案例2

    min() 函数可以直接接收多个参数,并逐个比较这些参数,找出最小值并返回。在代码中,这些参数中的最小值是 1,因此输出结果为 1

    案例3

    解释
    1. min() 函数的作用
    2. min() 函数不仅可以从单个可迭代对象(如列表、元组等)中找出最小值,还可以直接比较多个可迭代对象,找出其中的“最小”对象。

    3. 参数传递
    4. 在这个例子中,min() 函数接收了三个参数,每个参数都是一个列表:

    5. [1, 2, 3]

    6. [4, 5, 6]

    7. [7, 8, 9]

    8. 比较过程
    9. 当比较多个列表时,min() 函数会从左到右逐个比较这些列表的元素,直到找到不同的元素为止。

    10. 具体比较过程如下:

    11. 比较第一个元素:

    12. [1, 2, 3] 的第一个元素是1

    13. [4, 5, 6]的第一个元素是4

    14. [7, 8, 9] 的第一个元素是7

    15. 因为1 < 4 < 7,所以 [1, 2, 3] 是最小的列表。

    16. 由于第一个元素已经决定了结果,后续元素不再需要比较。

    17. 输出结果
    18. min([1, 2, 3], [4, 5, 6], [7, 8, 9]) 返回这些列表中的“最小”列表 [1, 2, 3],因此输出结果为 [1, 2, 3]。

    案例4

    代码1
    print(min([2, 1, 3], [1, 2, 3], [3, 2, 1]))  # 输出结果:[1, 2, 3]
    解释1
    1. min() 函数的作用
    2. min() 函数用于从多个可迭代对象(如列表、元组等)中找出“最小”的对象。

    3. 参数传递
    4. 在这个例子中,min()函数接收了三个参数,每个参数都是一个列表:

    5. [2, 1, 3]

    6. [1, 2, 3]

    7. [3, 2, 1]

    8. 比较过程
    9. 当比较多个列表时,min() 函数会从左到右逐个比较这些列表的元素,直到找到不同的元素为止。

    10. 具体比较过程如下:

    11. 比较第一个元素:

    12. [2, 1, 3] 的第一个元素是2

    13. [1, 2, 3] 的第一个元素是 1

    14. [3, 2, 1] 的第一个元素是 3

    15. 因为1 < 2 < 3,所以 [1, 2, 3] 是最小的列表。

    16. 由于第一个元素已经决定了结果,后续元素不再需要比较。

    17. 输出结果
    18. min([2, 1, 3], [1, 2, 3], [3, 2, 1]) 返回这些列表中的“最小”列表 [1, 2, 3],因此输出结果为 [1, 2, 3]。

    代码2
    print(min([2, 1, 3], [1, 2, 3], [3, 2, 1], key=len))  # 输出结果:[2, 1, 3]
    解释2
    1. key 参数的作用
    2. key 参数用于指定一个函数,该函数会在比较之前对每个元素进行处理。

    3. 在这个例子中,key=len 表示比较这些列表的长度。

    4. 参数传递
    5. min() 函数接收了三个参数,每个参数都是一个列表:

    6. [2, 1, 3]

    7. [1, 2, 3]

    8. [3, 2, 1]

    9. 比较过程
    10. 使用 key=len,比较这些列表的长度:

    11. [2, 1, 3] 的长度是3

    12. [1, 2, 3] 的长度是3

    13. [3, 2, 1] 的长度是3

    14. 因为所有列表的长度都相同,所以min() 函数会返回第一个列表。

    15. 输出结果
    16. min([2, 1, 3], [1, 2, 3], [3, 2, 1], key=len) 返回这些列表中的第一个列表[2, 1, 3],因此输出结果为[2, 1, 3]。

    总结

  • 在没有指定 key 参数时,min() 函数会从左到右逐个比较列表的元素,直到找到不同的元素为止。

  • 在指定 key 参数时,min() 函数会先对每个列表应用 key 函数,然后比较结果,如果结果相同,则返回第一个列表。

  • 作者:HaoChen/ChenHao

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python内置函数min()详解

    发表回复