专业编程基础技术教程

网站首页 > 基础教程 正文

如何在python各种列表中求最值? python 求列表的最大值

ccvgpt 2024-10-21 04:31:59 基础教程 7 ℃

在求最值的时候,我们最喜欢的是都是数值,浮点数。这样最好了。但是现实很骨感!要是一个列表出现了其他类型,咋办?如 lst = [3, 4, '43', 5.4,-2],这里有一个“43”的字符串类型。

下面,小编带你怎么计算和避开这些非数值类型的数。

如何在python各种列表中求最值? python 求列表的最大值

#max最大值判断
def my_max(seq):
    max_value=None#将max_value设置为None,便于输出
    if  not isinstance(seq,(list,tuple)):#判断这个变量seq是不是列表或者元组的形式,如果不是就返回None
        return max_value
    if len(seq)==0:#判断这个列表或元组是不是空的,如果是空的,也返回None
        return max_value
    max_value=seq[0]#先取第一个值
    for value in seq:  #在变量中一个个遍历
        if not  isinstance(value,(int,float)):#如果列表/元组中不存在数值,浮点数类型,则跳过继续执行
            continue
        if value>max_value:#如果找到比第一个值大的,把大的值继续赋值给max_value,以此类推,这样结束的时候max_value就是最大的值了
            max_value=value
    return max_value #返回值

if __name__=="__main__":#主开关

    lst = [3, 4, '43', 5.4,-2]#变量seq
    print(my_max(lst))


#max最小值判断
def my_min(seq):
    max_value=None#检查类型
    if  not isinstance(seq,(list,tuple)):
        return max_value
    if len(seq)==0:
        return max_value
    max_value=seq[0]
    for value in seq:
        if not  isinstance(value,(int,float)):
            continue
        if value<max_value:
            max_value=value
    return max_value

if __name__=="__main__":

    lst = [3, 4, 43, 5.4,-2]
    print(my_min(lst))

在最大值的程序里,楼主步骤都有介绍,最小值只是修改了“<”这种方法其实挺好!当然,也用到了continue、isinstance、return、if这些函数的用法。

多练多得,技能才能多,遇到问题解决的方法也就越多!欢迎观看~

Tags:

最近发表
标签列表