鱼C论坛

 找回密码
 立即注册
查看: 1983|回复: 1

[技术交流] Python max() 函数

[复制链接]
发表于 2020-3-19 22:03:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2020-3-23 12:10 编辑

Python max() 函数


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

参数

参数有两种传递方式:

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

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

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

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


描述

max() 方法用于找出最大的值。

返回值

返回最大的值。

例子
>>> max("awgij34tpqw;rleigj34oit 34joi4 jef ")
'w'
>>> max(3, 5, 7, 2, 1, 1, 99, 5, 8, 7, -54, 3, 12)
99
>>> max("abcdefgh", "abcdefghijklmnopqrst")
'abcdefghijklmnopqrst'
>>> max([1, 2, 3, 4], [1, 2, 3])
[1, 2, 3, 4]
>>> max([1, 2, 3, 4], [1, 2, 3], [5, 6, 7, 8])
[5, 6, 7, 8]
>>> max([1, 2, 3, 4, 5], [1, 2, 3], [5, 6, 7, 8])
[5, 6, 7, 8]
>>> max([1, 2, 3, 4, 5], [1, 2, 3], [5, 6, 7, 8], key=len)
[1, 2, 3, 4, 5]
>>> max("")
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    max("")
ValueError: max() arg is an empty sequence
>>> max("", default="abc")
'abc'
>>> max([], default="abc")
'abc'

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 08:44:21 | 显示全部楼层
本帖最后由 永恒的蓝色梦想 于 2020-3-20 08:54 编辑

一种可能的实现
def max(iterable,/,*vars,key=None,default=None):
    if vars:
        if default is not None:
            raise TypeError("Cannot specify a default for max() with multiple positional arguments")

        greatest=iterable
        flag=key(greatest)

    else:
        iterator=iter(iterable)

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

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

    if key is None:
        for var in vars:
            if var>greatest:
                greatest=var

        return greatest
        
    else:
        flag=key(greatest)

        for var in vars:
            if (temp:=key(var))>flag:
                flag=temp
                greatest=var

        return greatest
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 07:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表