一个账号 发表于 2020-3-19 22:03:40

Python min() 函数

本帖最后由 一个账号 于 2020-3-20 14:54 编辑

Python min() 函数

语法

min(iterable, *[, default=obj, key=func]) -> value
min(arg1, arg2, *args, *[, key=func]) -> value

参数

参数有两种传递方式:

1. 传递 1 或多个可迭代对象:如果传递 1 个可迭代对象,比的是可迭代对象里面的值;

    如果给的是 多个可迭代对象,比的是每一个迭代器对象。

2. 传递多个字符串或数字:比的是每个字符串或数字。


参数描述
iterable可迭代对象
key自定义处理函数,以 key 的返回结果进行对比
default默认值,只有在传递单个空值时有效


描述

min() 方法用于找出最小的值。

返回值

返回最小的值。

例子

>>> min("aobiwjoe4not4igja;wolqo28475199*&")
'&'
>>> min(1, 7, 4, 7, 3, 3, 6)
1
>>> min()
2
>>> min(, )

>>> min(, )

>>> min(, , key=len)

>>> min("")
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
    min("")
ValueError: min() arg is an empty sequence
>>> min("", default="default")
'default'

永恒的蓝色梦想 发表于 2020-3-20 08:49:31

本帖最后由 永恒的蓝色梦想 于 2020-3-20 08:54 编辑

一种可能的实现

def min(iterable,/,*vars,key=None,default=None):
    if vars:
      if default is not None:
            raise TypeError("Cannot specify a default for min() with multiple positional arguments")

      least=iterable
      flag=key(least)

    else:
      iterator=iter(iterable)

      if default is None:
            try:
                least=next(iterator)

            except StopIteration:
                raise ValueError("min() arg is an empty sequence")
      else:
            least=default

    if key is None:
      for var in vars:
            if var<least:
                least=var

      return least

    else:
      flag=key(least)

      for var in vars:
            if (temp:=key(var))<flag:
                flag=temp
                least=var

      return least

zltzlt 发表于 2020-3-20 13:04:22

Pyton

一个账号 发表于 2020-3-20 13:36:03

zltzlt 发表于 2020-3-20 13:04
Pyton

??

永恒的蓝色梦想 发表于 2020-3-20 14:48:50

一个账号 发表于 2020-3-20 13:36
??

标题写成pyton了

一个账号 发表于 2020-3-20 14:54:18

永恒的蓝色梦想 发表于 2020-3-20 14:48
标题写成pyton了

已改
页: [1]
查看完整版本: Python min() 函数